kill -9の代わりにkill -11を使用すると危険ですか?

kill -9の代わりにkill -11を使用すると危険ですか?

私は最近、ユーティリティが私が望むどんな信号でも送ることができることに気づきました。だから、プロセスがkill必要なときに(やめたいことがあるとき)、少し笑うために代わりにを送信します(代わりに。)SIGKILLSIGSEGVkill -11kill -9

しかし、これが悪い習慣かどうかはわかりません。それではkill -11それよりも危険なのでしょうかkill -9?それでは、どうすればいいですか?

答え1

このSIGSEGV信号は、カーネルによって誤った仮想メモリ参照(セグメントエラー)が作成されたプロセスに送信されます。

転送がSIGSEGVより危険になる可能性がある1つの方法は、スペースが不足しているファイルシステムでプロセスを終了することです。プロセスがaを受け取るときの基本的な作業は、SIGSEGVコアをファイルにダンプしてから終了することです。コアファイルはプロセスに応じて非常に大きくなる可能性があり、ファイルシステムをいっぱいにすることができます。

@Jankaがすでに述べたように、信号を処理する方法をプログラムに知らせるコードを書くことができますSIGSEGVSIGKILLまたはをキャプチャできませんSIGSTOP。プロセスを終了したい場合は、aまたはaを使用することをお勧めしますSIGKILL。通常、を使用すると否定的な結果は発生しませんが、終了しようとしているプロセスが予期しない方法で処理できます。SIGSTOPSIGSEGVSIGSEGV

答え2

SIGSEGVは受信プログラムによってキャプチャされ、プログラムが望むものは何でも実行できます。

SIGKILLとSIGSTOPは、プログラムがキャプチャまたは無視できない唯一の信号です。

関連情報