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.