実行中のプロセスのコアダンプを無効にする

実行中のプロセスのコアダンプを無効にする

私たちは簡単に競合するベンダーの製品を扱っています(大量のコアダンプを含む)。閉じたとき(領収書の後SIGTERM)。

コアは通常の動作中にクラッシュが発生した場合に便利なため、コアダンプを完全に無効にしたくありません。プロセスを終了する前にプロセスのコアダンプを無効にできますか?

独自のコアハンドラを書くことが不足しています。

答え1

私が見つけた1つの方法は、驚くべきことに他のUnix間で移植可能であり、コアをダンプするディレクトリ(通常はプロセスの現在の作業ディレクトリ)を作成することです。書けない。たとえば、このテストでは、sleep分割エラー信号が発生してもプロセスはコアダンプを生成しません。

sleep 50 &    # Launch sleep in the background
chmod u-w .   # Make the current directory unwritable for the owner
kill -11 $!   # Send the backgrounded sleep-process a SIGSEGV
chmod u+w .   # Restore the directory's permissions

これは私たちの目的には十分です。私たちは、アプリケーションを閉じるときにディレクトリに新しいファイルを書き込むことを望んでいません(コアダンプでも他のものでも)。しかし、誰にも適しているわけではありません...

うまくいけば、他のもの(Linuxに固有のものを含む)があることを願っています。

関連情報