bash - como - kill nohup process
¿Cómo matar un proceso de nohup? (5)
Ejecuté el siguiente comando
$ nohup ./tests.run.pl 0 &
ahora cuando intento matarlo (y las ejecuciones que se inician desde este script) usando
$ kill -0 <process_id>
No funciona. ¿Cómo puedo matar un proceso nohupped y los procesos que se ejecutan a través del script nohupped?
Gracias
Haría algo como:
jobs
[1] + Running nohup ./tests.run.pl
kill %1
Si no conoce los identificadores de proceso y puede ejecutar varios comandos dentro de un shell (o un bucle), puede ejecutar jobs -l
para enumerar trabajos y PID, luego kill
.
Ver ejemplo:
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$
Simplemente kill <pid>
que enviará un SIGTERM
, que nohup
no ignorará.
No debe enviar un SIGKILL
primero, ya que no le da al proceso ninguna posibilidad de recuperación; Debes probar lo siguiente, en orden:
-
SIGTERM
(15) -
SIGINT
(2) -
SIGKILL
(9)
matar el proceso nohup
ps aux |grep nohup
grep that PID
kill -15 -1 16000
(cerrará sesión) y limpiará en la próxima raíz de inicio de sesión
kill -0
no mata el proceso. Simplemente comprueba si puedes enviarle una señal.
Simplemente kill pid
, y si eso no funciona, prueba kill -9 pid
.