Ответ 1
kill -0
не убивает процесс. Он просто проверяет, можете ли вы послать ему сигнал.
Просто kill pid
, и если это не сработает, попробуйте kill -9 pid
.
Я выполнил следующую команду
$ nohup ./tests.run.pl 0 &
теперь, когда я пытаюсь его убить (и запуска, которые запускаются из этого script), используя
$ kill -0 <process_id>
он не работает. Как я могу убить nohupped процесс и процессы, которые выполняются через nohupped script?
Спасибо
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
для списка заданий и 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$
kill nohup
процесс
ps aux |grep nohup
grep, что PID
kill -15 -1 16000
(выйдет из системы) и очистится от следующего имени root