web-dev-qa-db-ja.com

Nohupプロセスを強制終了する方法は?

次のコマンドを実行しました

$ Nohup ./tests.run.pl 0 &

今、私はそれを殺そうとすると(そしてこのスクリプトから開始される実行)、

$ kill -0 <process_id>

それは動作しません。 nohuppedプロセスおよびnohuppedスクリプトを介して実行されるプロセスを強制終了するにはどうすればよいですか?

ありがとう

33
polerto

kill -0notプロセスを強制終了します。シグナルを送信できるかどうかを確認するだけです。

単にkill pid、それでもうまくいかない場合は、kill -9 pid

44
Mat

単にkill <pid>は、SIGTERMを送信しますが、Nohupは無視しません。

最初にSIGKILLを送信しないでください。プロセスに回復の機会がないためです。次のことを順番に試してください。

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

私は次のようなことをします:

jobs

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

kill %1
5
user7321649

プロセスIDがわからず、シェル(またはループ)内でさまざまなコマンドを実行する可能性がある場合は、jobs -lを実行してジョブとPIDをリストし、次に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$
3
Mike S.

kill Nohupプロセス

ps aux |grep Nohup

PIDkill -15 -1 16000(ログアウトします)そして次のログインルートでクリーンアップします

1
san shrestha