Como encerrar o processo usando o nome do programa em vez do PID?

Como encerrar o processo usando o nome do programa em vez do PID?

Comecei meu programa Python em segundo plano usando nohupcomo mencionado abaixo -

nohup zook.py &

Agora estou tentando encerrar esse processo, então executei o pscomando mencionado abaixo

root@phxdbx1145:/home/david/zook# ps ax | grep zook.py
16352 pts/6    S+     0:00 grep --color=auto zook.py

Mas de alguma forma, toda vez que seu PID é alterado, não sei por quê. Sempre que eu faço assim -

kill -9 16352

Sempre diz No Such Process,.

E quando executo o comando px novamente, vejo que o PID foi alterado automaticamente.

Então não tenho certeza de como faço para matar esse processo?

Existe alguma maneira de encerrar o processo com o nome de alguma forma?

Eu tentei com

killall zook.py

mas não funciona para mim e eu fico -

zook.py: no process found

Alguma outra opção? De alguma forma, toda vez que seu PID é alterado. Então não posso usarkill -9 pid

ATUALIZAR:-

Isso é o que estou recebendo. Eu fiz pkill -9 zook.pye então executei o comando ps conforme mencionado abaixo e ele mostra zook.py constantemente?

root@dbx1145:/home/david/zook# pkill -9 zook.py

root@dbx1145:/home/david/zook# ps ax | grep zook.py
23870 pts/6    S+     0:00 grep --color=auto zook.py

root@dbx1145:/home/david/zook# ps ax | grep zook.py
23872 pts/6    S+     0:00 grep --color=auto zook.py

root@dbx1145:/home/david/zook# ps ax | grep zook.py
23874 pts/6    S+     0:00 grep --color=auto zook.py

root@dbx1145:/home/david/zook# ps ax | grep zook.py
23876 pts/6    S+     0:00 grep --color=auto zook.py

Responder1

Se você olhar o que está à direita desse PID, poderá notar que é o PID do grep procurando sua string de pesquisa. É por isso que é sempre diferente. No momento em que você recupera o shell do grep, é claro que o grep desapareceu.

Você encontrará seu processo com um nome diferente, se ainda estiver em execução. Em vez disso, tente ps ax | grep python, ou melhor ainda, pgrep pythonse tiver.

Responder2

Para fazer o grep para o processo, você poderia usar

ps ax|grep name|grep -v grep

isso eliminará os comandos grep; no entanto, se o nome do seu script não estiver aparecendo, você provavelmente precisará executar ps axw para obter uma linha de comando mais longa.

ps axww|grep name|grep -v grep

informação relacionada