FreeBSD上のサーバーのエラー処理コードを書いています。非常に重大なエラーの場合、すぐに終了することでデータ破損を回避したいと思います。それは簡単です、exit(3)
。終了する前に、そこに導かれた関連変数を出力しました。ただし、理想的には、この終了には.core
この壊滅的な(そしておそらく再現が難しい)状態になった原因を完全に調査できるように。
どうすればこれを強制できますか?
kill -QUIT process_id
は、実行中のプロセスからコアダンプを発生させます(リソースの制限により許可されている場合)。
または、プログラムにそれ自体をダンプさせるためのman 3 abort
を参照してください。
追加:対話型シェルから、実行中のプログラムを終了キーで中止させることができます。通常は Ctrl+\、より一般的なSIGQUITを送信する Ctrl+C SIGINTを送信します。これはkill -QUIT…
と同じです。制御端末を使用している場合は入力しやすいだけです。デフォルトの終了キーが異なる場合は、man 1 stty
を参照してください。
これ 助けてくれました! kill -11
は常に私のために働きます。 11はSIGSEGV(無効なメモリ参照)です
Gcore(1)( http://man.freebsd.org/gcore )もご覧ください。
Sles12 ..以下のコードは私のために働いた:
kill -11
前の提案は何もしませんでした。