killコマンド形式を使用した操作の違いは何ですか、どのシナリオでどちらを使用しましたか。
kill -9 process-id
kill SIGUSR2 process-id
killコマンド形式を使用した操作の違いは何ですか、どのシナリオでどちらを使用しましたか。
kill -9 process-id
kill SIGUSR2 process-id
SIGUSR2
プロセスに送信する場合は、次のいずれかを使用します。
kill -SIGUSR2 $pid
kill -USR2 $pid
kill -10 $pid # This will vary with platform
SIGKILL
プロセスに送信する場合は、次のいずれかを使用します。
kill -SIGKILL $pid
kill -KILL $pid
kill -9 $pid
「どのシナリオ」に関する質問にどのように答えればよいかわかりません。を送信する場合USR2
は、前の 3 つのコマンドのいずれかを使用します。を送信する場合KILL
は、後者のいずれかを使用します。KILL
通常、 を受け取るプロセスはKILL
それ自体の後でクリーンアップできないため、 の使用は避けたいと考えています。一方、多くのソフトウェアは不十分に記述されており、 経由でしか終了できませんSIGKILL
。通常は、 を送信TERM
し、しばらく待ってからTERM
2 回目の送信を行い、もう一度送信してから送信する方が丁寧であると考えられていKILL
ます。 USR2
通常、それを期待しており、何らかの有用な方法で応答するプログラムにのみ役立ちます。プログラムがシグナルを予期しておらず、それを無視するためのアクションが実行されていない場合、デフォルトの動作は終了します。
SIGUSR2 の特定のシグナル番号はさまざまであることに注意してください。プラットフォームによっては、10、12、31、およびおそらく他の多くの値になる場合があります。値を明示的に設定しないことをお勧めします。標準化されている唯一の信号番号は 1、2、3、6、9、14、および 15 です。したがって、9 は常にSIGKILL
ですが、変更される可能性があります (実際にSIGUSR2
変更されます!)。