この質問を投稿したのは、直接回答が見つからないことに驚いたからです。これが重複している場合は謝罪-私は見た!
聞いたことがあるkill -9
かkill -SIGKILL
悪いかはわかりますが、理由はわかりません。私はべきでない場合はkill -9
何をすべきである私は、プロセスを殺すためにですか?
kill -9
、それは」、OPは言う、「素晴らしい、働いている!私が!今からそれを覚えているだろう」、とBは警告するで来る「待ち時間がkill -9
危険です!」だけ事実の後。
この質問を投稿したのは、直接回答が見つからないことに驚いたからです。これが重複している場合は謝罪-私は見た!
聞いたことがあるkill -9
かkill -SIGKILL
悪いかはわかりますが、理由はわかりません。私はべきでない場合はkill -9
何をすべきである私は、プロセスを殺すためにですか?
kill -9
、それは」、OPは言う、「素晴らしい、働いている!私が!今からそれを覚えているだろう」、とBは警告するで来る「待ち時間がkill -9
危険です!」だけ事実の後。
回答:
SIGKILL
実行中のプロセスからラグを引き出し、すぐに終了します。非常に単純なプログラムの場合、これで十分です。しかし実際には、「単純な」プログラムはほとんどありません。
カバーの下では、finally
リソースハンドルを閉じる、一時ファイルを削除する、データをフラッシュするなど、終了する前にクリーンアップする必要のあるあらゆる種類のトランザクション作業(Javaや他のプログラミング言語のブロックを考える)ディスクへのメモリ。プログラムがいつこのようなことをしているのかを予測することはできません。
運が良ければ、を送信してもおかしいことに気付かないでしょうが、SIGKILL
永遠に幸運になることはできません。また、失われたものを回復するには手遅れになるまで、何が間違っているのか分からないかもしれません。
を送信する必要はほとんどありませんし、送信するSIGKILL
前に選択肢を使い果たしたことを確認する必要があります。多くの場合、リブート(最終的にSIGKILL
sを不正な動作をするプログラムに送信しSIGKILL
ます)は、手動で自分自身を送信するよりも安全です。私はおそらく、私が送信する必要がある回数を数えることができますSIGKILL
(そしておそらく私自身の作成のすべて)。
一般的に、Ctrl+ C(フォアグラウンドプロセスaを送信するSIGINT
)またはSIGTERM
(「終了」のように)を使用して、プロセスの実行を停止して終了するようにプロセスに指示できます。
さらにいくつかの読書: