Назад | Перейти на главную страницу

Как убить процесс, используя имя программы вместо PID?

Я запустил свою программу Python в фоновом режиме, используя nohup как указано ниже -

nohup zook.py &

Теперь я пытаюсь убить этот процесс, поэтому я сделал ps команда, как указано ниже

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

Но почему-то каждый раз, когда его PID меняется, я не знаю почему. Когда мне это нравится -

kill -9 16352

Всегда говорят, No Such Process.

И когда я снова выполняю команду px, я вижу, что PID изменился автоматически.

Итак, я не уверен, как мне убить этот процесс?

Есть ли способ как-нибудь убить процесс с именем?

Я пробовал с

killall zook.py

но у меня это не работает, и я получаю -

zook.py: no process found

Любой другой вариант? Как-то каждый раз его PID меняется. Поэтому я не могу использовать kill -9 pid

ОБНОВИТЬ:-

Вот что я получаю. я сделал pkill -9 zook.py а затем я выполнил команду ps, как указано ниже, и она постоянно shwoing zook.py?

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

Если вы посмотрите на то, что находится справа от этого PID, вы можете заметить, что это PID grep, ищущего вашу строку поиска. Поэтому каждый раз по-разному. К тому времени, когда вы вернете оболочку из grep, конечно, grep уже не будет.

Вы найдете свой процесс под другим именем, если он все еще выполняется. Пытаться ps ax | grep python вместо этого или еще лучше, pgrep python если он у вас есть.

Чтобы выполнить команду grep для процесса, вы можете использовать

ps ax|grep name|grep -v grep

это избавит от команд grep, однако, если имя вашего скрипта не отображается, вам, вероятно, придется выполнить ps axw, чтобы получить более длинную командную строку.

ps axww|grep name|grep -v grep