コアファイルの作成が完了するタイミングを決定するフックはありますか?

コアファイルの作成が完了するタイミングを決定するフックはありますか?

core.<pid>ファイル作成の開始/終了をどのように決定しますか?

ベストアンサー1

一つ入れてもいいinotifyコアファイルが含まれるディレクトリを見てください。デモ:

/tmp$ { ulimit -c unlimited; exec sleep 9999; } &
[1] 25646
/tmp$ kill -QUIT %1                              
[1]  + 25646 quit (core dumped)  { ulimit -c unlimited; exec sleep 9999; }

他の端末から:

$ inotifywait -e close_write /tmp
Setting up watches.
Watches established.
/tmp/ CLOSE_WRITE,CLOSE core

CLOSE_WRITEコアファイルが完全に作成されると、最後の行報告イベントが発生します。

または、Linuxを使用してコアファイルの作成をカスタマイズできます。これはシステム全体の設定であり、ルートアクセスが必要なため、状況に適している場合とそうでない場合があります。設定できますkernel.core_patternI/W制御標準出力でコアコンテンツを受け取るプログラムを指します。おもちゃのプログラムは次のとおりです。

#!/bin/sh
cat >"/var/cores/$1-$2-$3.core"
# Do whatever you want now that the core file has been written
echo "/var/cores/$1-$2-$3.core" | mail -s "$4 dumped core" denys

/usr/local/sbin/my_core_dumper登録

sysctl kernel.core_pattern='|/usr/local/sbin/my_core_dumper %t %P %e %E'

おすすめ記事