Я начал свою программу Python в фоновом режиме, используя nohup, как указано ниже -
nohup zook.py &
Теперь я пытаюсь убить этот процесс, поэтому я сделал команду ps, как указано ниже 1]
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 автоматически изменился ..
Итак, я не уверен, как мне убить этот процесс?
Можно ли каким-то образом убить процесс с именем?
UPDATE: - 7]
Это то, что я получаю. Я сделал pkill -9 zook.py, а затем сделал команду ps, как указано ниже, и это постоянно 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 в вашем примере, который продолжает меняться, - это идентификатор процесса вашего grep, пытающийся найти PID. Это означает, что ваши ps и grep не находят фактический процесс, который вы ищете.
Попробуйте запустить свой скрипт без завершающего «& amp;», чтобы увидеть, что он делает.
Вы также можете использовать инструмент «Системный монитор» из панели инструментов, чтобы просмотреть полный список процессов с идентификаторами процесса.
вы можете использовать pkill для отправки сигнала уничтожения так же, как и сигнал kill
Eg: pkill firefox
pkill -9 firefox
Вы можете убить с помощью xkill. Просто зайдите в диалог «run» (Alt + F2), введите xkill, и указатель мыши изменится на «x». Укажите приложение, которое вы хотите убить и нажмите, и оно будет убито. Иногда бывает намного быстрее, чем загрузка системного монитора.
Основная проблема заключается в команде «ps ax | grep something '. Это всегда отображает «grep ... something» как один из процессов, который на самом деле является «grep», начатым вами. вместо этого используйте 'pgrep', чтобы получить pid
: https://unix.stackexchange.com/questions/74185/how-can-i-prevent-grep-from-showing-up-in- пс-результаты