J'ai exécuté la commande suivante
$ Nohup ./tests.run.pl 0 &
maintenant, quand j'essaie de le tuer (et les exécutions démarrées à partir de ce script) en
$ kill -0 <process_id>
ça ne marche pas. Comment puis-je tuer un processus nohupped et les processus exécutés via le script nohupped?
Merci
kill -0
fait pas tue le processus. Il vérifie simplement si vous pouvez lui envoyer un signal.
Simplement kill pid
, et si cela ne fonctionne pas, essayez kill -9 pid
.
Simplement kill <pid>
qui enverra une SIGTERM
, que Nohup
ne sera pas ignorée.
Vous ne devriez pas envoyer une SIGKILL
en premier car cela ne laisse aucune chance au processus de récupérer; vous devriez essayer ce qui suit, dans l'ordre:
SIGTERM
(15)SIGINT
(2)SIGKILL
(9)Je ferais quelque chose comme:
jobs
[1] + Running Nohup ./tests.run.pl
kill %1
Si vous ne connaissez pas les identifiants de processus et qu'il est possible que diverses commandes soient exécutées dans un shell (ou une boucle), vous pouvez exécuter jobs -l
pour répertorier les travaux et les PID, puis kill
.
Voir exemple:
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$
tuer Nohup
processus
ps aux |grep Nohup
grep que PID
kill -15 -1 16000
(vous déconnectera) et à nettoyer à la prochaine connexion root