Я запустил свою программу 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