次のコマンドを実行しました
$ Nohup ./tests.run.pl 0 &
今、私はそれを殺そうとすると(そしてこのスクリプトから開始される実行)、
$ kill -0 <process_id>
それは動作しません。 nohuppedプロセスおよびnohuppedスクリプトを介して実行されるプロセスを強制終了するにはどうすればよいですか?
ありがとう
kill -0
はnotプロセスを強制終了します。シグナルを送信できるかどうかを確認するだけです。
単に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
プロセス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$
kill Nohup
プロセス
ps aux |grep Nohup
PID
kill -15 -1 16000
(ログアウトします)そして次のログインルートでクリーンアップします