Подтвердить что ты не робот

Как убить процесс nohup?

Я выполнил следующую команду

$ nohup ./tests.run.pl 0 &

теперь, когда я пытаюсь его убить (и запуска, которые запускаются из этого script), используя

$ kill -0 <process_id>

он не работает. Как я могу убить nohupped процесс и процессы, которые выполняются через nohupped script?

Спасибо

4b9b3361

Ответ 1

kill -0 не убивает процесс. Он просто проверяет, можете ли вы послать ему сигнал.

Просто kill pid, и если это не сработает, попробуйте kill -9 pid.

Ответ 2

Просто kill <pid>, который отправит SIGTERM, который nohup не будет игнорировать.

Сначала вы не должны отправлять SIGKILL, поскольку это дает процессу никаких шансов на восстановление; вы должны попробовать следующее, чтобы:

  • SIGTERM (15)
  • SIGINT (2)
  • SIGKILL (9)

Ответ 3

Я бы сделал что-то вроде:

jobs

[1] + Running nohup ./tests.run.pl

kill %1

Ответ 4

Если вы не знаете идентификаторы процессов и могут запускать различные команды в оболочке (или в цикле), вы можете запустить jobs -l для списка заданий и PID, а затем kill их.

См. пример:

[email protected]:/usr/share/etlservice/bin$ jobs -l
[1]  27398 Running                 nohup ./extract_assessor_01.sh > job1.log &
[2]  27474 Running                 nohup ./extract_assessor_02.sh > job2.log &
[3]  27478 Running                 nohup ./extract_assessor_03.sh > job3.log &
[4]- 27481 Running                 nohup ./extract_assessor_04.sh > job4.log &
[5]+ 28664 Running                 nohup ./extract_assessor_01.sh > job1.log &
[email protected]:/usr/share/etlservice/bin$ sudo kill 27398
sudo kill 27474[1]   Terminated              nohup ./extract_assessor_01.sh > job1.log
[email protected]:/usr/share/etlservice/bin$ sudo kill 27474
[2]   Terminated              nohup ./extract_assessor_02.sh > job2.log
[email protected]:/usr/share/etlservice/bin$ sudo kill 27478
[3]   Terminated              nohup ./extract_assessor_03.sh > job3.log
[email protected]:/usr/share/etlservice/bin$ sudo kill 27481
[4]-  Terminated              nohup ./extract_assessor_04.sh > job4.log
[email protected]:/usr/share/etlservice/bin$ sudo kill 28664
[5]+  Terminated              nohup ./extract_assessor_01.sh > job1.log
[email protected]:/usr/share/etlservice/bin$

Ответ 5

kill nohup процесс

ps aux |grep nohup

grep, что PID kill -15 -1 16000 (выйдет из системы) и очистится от следующего имени root