「殺す」のか`正しい削除順序を見つけますか(または正しい再試行が行われましたか?)

「殺す」のか`正しい削除順序を見つけますか(または正しい再試行が行われましたか?)

kill <PID list>一部のプロセスは他のプロセスより前に終了できないため、そのようなプロセスを終了しようとし、放棄し、その「パートナー」を正常に終了して前のプロセスも終了する可能性があるにもかかわらず、終了していないまま残す状況を考えることができます。後でもう一度やり直してください。

これが真であれば、もう一つの質問は、kill <PID list>リスト内のPIDの順序が尊重されるかどうかです。または、プロセスが終了する順序を制御するために別々の終了プロセスを使用する必要がありますか?

ベストアンサー1

各宛先に順番に信号を送信するよりも多くがあるかどうか疑われます。POSIX はkill(1)次のように定義されます。したがって、再試行は仕様に違反しているようです。

これ殺すユーティリティーは、指定された各プロセスにシグナルを送信する必要があります。PIDオペランド。

それぞれPIDオペランド、殺す公益事業会社は、次の措置を講じる必要があります。殺す()機能

SIGHUPまた、すべてのシグナルがプロセスを終了するわけではなく、一部のシグナル(例:言及しないSIGUSR1)はプログラムごとに異なる意味を持つ可能性があることに注意してください。再試行のタイミングを知るための明確な方法はありませんが、最初に送信してから使用するkill方法はあります。SIGTERMSIGKILL

与えられた順序で信号を送信するのは簡単です。これがBashがkillすることです:

$ strace -etrace=kill bash -c 'kill -0 33330 33339 33335 33332 33337' |& grep ^'kill('
kill(33330, SIG_0)                      = -1 ESRCH (No such process)
kill(33339, SIG_0)                      = -1 ESRCH (No such process)
kill(33335, SIG_0)                      = -1 ESRCH (No such process)
kill(33332, SIG_0)                      = -1 ESRCH (No such process)
kill(33337, SIG_0)                      = -1 ESRCH (No such process)

おすすめ記事