¿Cómo finalizar el proceso usando el nombre del programa en lugar de PID?

¿Cómo finalizar el proceso usando el nombre del programa en lugar de PID?

Comencé mi programa Python en segundo plano usando nohupcomo se menciona a continuación:

nohup zook.py &

Ahora estoy intentando finalizar este proceso, así que hice el pscomando como se menciona a continuación.

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

Pero de alguna manera, cada vez que se cambia el PID, no sé por qué. Cada vez que me gusta esto -

kill -9 16352

Siempre dice, No Such Process.

Y cuando vuelvo a ejecutar el comando px, veo que el PID se cambió automáticamente.

Entonces, no estoy seguro de cómo puedo eliminar este proceso.

¿Hay alguna manera de que pueda finalizar el proceso con el nombre de alguna manera?

lo intenté con

killall zook.py

pero no me funciona y me sale -

zook.py: no process found

¿Alguna otra opción? De alguna manera, cada vez, se cambia el PID. Así que no puedo usarlo.kill -9 pid

ACTUALIZAR:-

Esto es lo que estoy obteniendo. Lo hice pkill -9 zook.pyy luego ejecuté el comando ps como se menciona a continuación y muestra 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

Respuesta1

Si observa lo que está a la derecha de ese PID, podrá notar que es el PID de grep que busca su cadena de búsqueda. Por eso es diferente cada vez. Para cuando recupere su shell de grep, por supuesto, grep ya no está.

Encontrará su proceso con un nombre diferente, si aún se está ejecutando. Pruébalo ps ax | grep pythonen su lugar, o mejor aún, pgrep pythonsi lo tienes.

Respuesta2

Para hacer el grep para el proceso, podrías usar

ps ax|grep name|grep -v grep

esto eliminará los comandos grep; sin embargo, si el nombre de su script no aparece, probablemente tenga que hacer ps axw para obtener una línea de comando más larga.

ps axww|grep name|grep -v grep

información relacionada