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

6

Iniciei meu programa em Python em segundo plano usando nohup , conforme mencionado abaixo -

nohup zook.py &

Agora estou tentando matar esse processo, por isso fiz o comando ps como 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 eu faço o comando px novamente, vejo que o PID foi alterado automaticamente.

Então, não tenho certeza de como eu mato esse processo?

Existe alguma maneira que eu possa matar o processo com o nome de alguma forma?

ATUALIZAÇÃO: -

Isso é o que eu estou recebendo. Eu fiz pkill -9 zook.py e, em seguida, eu fiz o comando ps como mencionado abaixo e é shwoing 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
    
por arsenal 28.12.2013 / 06:50

5 respostas

5

Use killall :

killall <the_process_name>
    
por precise 28.12.2013 / 06:52
2

O pid no seu exemplo, aquele que continua mudando, é o ID do processo do seu grep tentando encontrar o PID. Isso significa que seu ps e grep não estão encontrando o processo real que você está procurando.

Tente executar seu script sem o "& amp;" final, para ver o que está fazendo. As chances são de que ele esteja falhando tranquilamente em você e não começando de fato.

Você também pode usar a ferramenta Monitor do sistema do painel para ver a lista completa de processos com IDs de processo.

    
por ImaginaryRobots 28.12.2013 / 07:08
2

você pode usar pkill para enviar sinal de kill mesmo que matar o sinal

Eg: pkill firefox 
pkill -9 firefox
    
por Meow 28.12.2013 / 07:05
2

Você pode matar com xkill . Basta ir ao diálogo "run" ( Alt + F2 ), digite xkill e o ponteiro do mouse mudará para um "x". Aponte para o aplicativo que você quer matar e clique, e ele será morto. Às vezes pode ser muito mais rápido do que carregar o Monitor do Sistema.

    
por kamil 28.12.2013 / 07:54
1

O problema básico é com o comando 'ps ax | grep something '. Isto sempre lista 'grep ... alguma coisa' como um dos processos, que é de fato o 'grep' iniciado por você. use 'pgrep' para pegar o pid

veja: link

    
por Vishu 11.09.2016 / 09:21