私は最近、ユーティリティが私が望むどんな信号でも送ることができることに気づきました。だから、プロセスがkill
必要なときに(やめたいことがあるとき)、少し笑うために代わりにを送信します(代わりに。)SIGKILL
SIGSEGV
kill -11
kill -9
しかし、これが悪い習慣かどうかはわかりません。それではkill -11
それよりも危険なのでしょうかkill -9
?それでは、どうすればいいですか?
答え1
このSIGSEGV
信号は、カーネルによって誤った仮想メモリ参照(セグメントエラー)が作成されたプロセスに送信されます。
転送がSIGSEGV
より危険になる可能性がある1つの方法は、スペースが不足しているファイルシステムでプロセスを終了することです。プロセスがaを受け取るときの基本的な作業は、SIGSEGV
コアをファイルにダンプしてから終了することです。コアファイルはプロセスに応じて非常に大きくなる可能性があり、ファイルシステムをいっぱいにすることができます。
@Jankaがすでに述べたように、信号を処理する方法をプログラムに知らせるコードを書くことができますSIGSEGV
。SIGKILL
またはをキャプチャできませんSIGSTOP
。プロセスを終了したい場合は、aまたはaを使用することをお勧めしますSIGKILL
。通常、を使用すると否定的な結果は発生しませんが、終了しようとしているプロセスが予期しない方法で処理できます。SIGSTOP
SIGSEGV
SIGSEGV
答え2
SIGSEGVは受信プログラムによってキャプチャされ、プログラムが望むものは何でも実行できます。
SIGKILLとSIGSTOPは、プログラムがキャプチャまたは無視できない唯一の信号です。