0

killコマンド形式を使用した操作の違いは何ですか、どのシナリオでどちらを使用しましたか。

kill -9 process-id
kill SIGUSR2 process-id
4

1 に答える 1

4

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し、しばらく待ってからTERM2 回目の送信を行い、もう一度送信してから送信する方が丁寧であると考えられていKILLます。 USR2通常、それを期待しており、何らかの有用な方法で応答するプログラムにのみ役立ちます。プログラムがシグナルを予期しておらず、それを無視するためのアクションが実行されていない場合、デフォルトの動作は終了します。

SIGUSR2 の特定のシグナル番号はさまざまであることに注意してください。プラットフォームによっては、10、12、31、およびおそらく他の多くの値になる場合があります。値を明示的に設定しないことをお勧めします。標準化されている唯一の信号番号は 1、2、3、6、9、14、および 15 です。したがって、9 は常にSIGKILLですが、変更される可能性があります (実際にSIGUSR2変更されます!)。

于 2012-12-13T18:36:45.200 に答える