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

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

$ nohup ./tests.run.pl 0 &

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

$ kill -0 <process_id>

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

спасибо

5 ответов


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

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


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

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

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

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

jobs

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

kill %1

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

пример:

ubuntu@app2:/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 &
ubuntu@app2:/usr/share/etlservice/bin$ sudo kill 27398
sudo kill 27474[1]   Terminated              nohup ./extract_assessor_01.sh > job1.log
ubuntu@app2:/usr/share/etlservice/bin$ sudo kill 27474
[2]   Terminated              nohup ./extract_assessor_02.sh > job2.log
ubuntu@app2:/usr/share/etlservice/bin$ sudo kill 27478
[3]   Terminated              nohup ./extract_assessor_03.sh > job3.log
ubuntu@app2:/usr/share/etlservice/bin$ sudo kill 27481
[4]-  Terminated              nohup ./extract_assessor_04.sh > job4.log
ubuntu@app2:/usr/share/etlservice/bin$ sudo kill 28664
[5]+  Terminated              nohup ./extract_assessor_01.sh > job1.log
ubuntu@app2:/usr/share/etlservice/bin$

убить