Как убить процесс, используя имя программы вместо 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 изменился автоматически ..

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

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

ОБНОВЛЕНИЕ: -

Это то, что я получаю. Я сделал 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
6
задан 6 January 2014 в 20:18

6 ответов

Используйте killall:

killall <the_process_name>
0
ответ дан 6 January 2014 в 20:18

Pid в вашем примере, который постоянно меняется, - это идентификатор процесса вашего grep, пытающегося найти PID. Это означает, что ваши ps и grep не находят тот процесс, который вы ищете.

Попробуйте запустить свой сценарий без завершающего «& amp;», чтобы увидеть, что он делает. Скорее всего, он тихо рушится и совсем не начинается.

Вы также можете использовать инструмент System Monitor из тире, чтобы увидеть полный список процессов с идентификаторами процессов.

0
ответ дан 6 January 2014 в 20:18

Вы можете использовать pkill для отправки сигнала уничтожения, аналогичного сигналу уничтожения

Eg: pkill firefox 
pkill -9 firefox
0
ответ дан 6 January 2014 в 20:18

Вы можете убить с xkill. Просто перейдите в диалоговое окно «Выполнить» ( Alt + F2 ), введите xkill, и указатель мыши изменится на «x». Укажите приложение, которое вы хотите убить, и нажмите, и оно будет убито. Иногда это может быть намного быстрее, чем загрузка системного монитора.

0
ответ дан 6 January 2014 в 20:18
  • 1
    +1 для Вашего решения. It' s завершенный и еще оценка блока следует за шаблоном: prompt> набор - B C; n=2; оценка новый =" $ (отзываются эхом \$ {$n}), "; $new эха.... С непредусмотрительностью it' s легче, конечно. Спасибо. – Cbhihe 19 June 2015 в 00:26

Основная проблема с командой 'ps ax | grep что-то ». Это всегда перечисляет «grep ... что-то» как один из процессов, который фактически является «grep», запущенным вами. вместо этого используйте pgrep, чтобы получить pid

, см. https://unix.stackexchange.com/questions/74185/how-can-i-prevent-grep-from-showing-up- в-PS-результаты

0
ответ дан 6 January 2014 в 20:18

Лучший ответ здесь, https://askubuntu.com/a/760514/877732

Если myName не является именем процесса или, например, является аргументом для другая (длинная) команда pkill (или pgrep) может работать не так, как ожидалось. Поэтому вам нужно использовать опцию -f.

0
ответ дан 20 July 2020 в 07:30

Другие вопросы по тегам:

Похожие вопросы: