別の質問のこの回答に対するコメントで、コメント投稿者は次のように述べています。
どうしても必要な場合を除き、kill -9 を使用しないでください。SIGKILL はトラップできないため、強制終了されたプログラムは一時ファイルを消去するなどのシャットダウン ルーチンを実行できません。最初に HUP (1)、次に INT (2)、次に QUIT (3) を試してください。
については原則として同意しますSIGKILL
が、残りはニュースです。によって送信されるデフォルトのシグナルが であることを考えるとkill
、SIGTERM
任意のプロセスを正常にシャットダウンするために最も一般的に期待されるシグナルであると思います。SIGHUP
また、デーモンに「構成ファイルを再読み込みする」ように指示するなど、終了しない理由で使用されているのを見てきました。そして、SIGINT
(通常は Ctrl-C で得られるのと同じ割り込みですよね?) 本来あるべきほど広くサポートされていないか、かなり不自然に終了しているように思えます。
SIGKILL
それが最後の手段であることを考えると、任意のプロセスを可能な限り正常にシャットダウンするには、どのシグナルをどのような順序で送信する必要がありますか?
可能であれば、裏付けとなる事実 (個人的な好みや意見を超えて) または参照を使用して回答を裏付けてください。
注: bash/Cygwin を考慮したベスト プラクティスに特に関心があります。
編集:これまでのところ、INT や QUIT については誰も言及していないようで、HUP についての言及は限られています。これらを整然としたプロセスキルに含める理由はありますか?