Se o comando morrer, você obterá o prompt do shell de volta, com ou sem uma mensagem de erro.
Assim, em qualquer caso, ainda está em execução. Mas no seu caso, parece estar aguardando a entrada do terminal. Isso geralmente significa que nunca terminará , a menos que você forneça a entrada que está aguardando.
Em qualquer caso, top não é a ferramenta certa. Destina-se a mostrar os principais processos - aqueles que usam a maioria da CPU, a maior parte da memória, etc. - e seu comando não é necessariamente um dos processos com maior classificação em qualquer categoria que top ordena.
A ferramenta apropriada para ver o status de um comando é ps . Você pode usar ps para mostrar todos os processos no sistema (com -e ), apenas seus próprios processos (ou de um usuário específico) (com -U ) ou processos específicos. Outros parâmetros para ps estão definindo seu formato. Então, no seu caso, você poderia usar
ps -lf $(pgrep python)
Para ver todos os processos cujo comando head é python .
O -lf fornece muitas informações sobre cada um desses processos - entre eles, o estado do processo (na coluna S ) e, se estiver atualmente suspenso em vez de em execução, a chamada do sistema foi interrompida. ( WCHAN ).
Se o comando estiver em execução, em vez de esperar, você verá R na coluna S e - na coluna WCHAN . Se estiver aguardando algo, você verá S na coluna S e algo como wait_w , poll_s , futex_ etc. na coluna WCHAN .
É difícil dizer exatamente o que se está esperando, mas se você perceber que ele permanece nesse estado por muito tempo e espera que ele comece a ser executado, verifique o próprio comando para ver se ele foi executado corretamente .
Leia o manual ps para obter mais detalhes sobre os possíveis formatos e o que você pode ver em sua saída.
E quanto ao seu comando python, você deve verificar por que ele está aguardando a entrada do usuário.