しかし、その質問には適切に答えられませんでした。代わりに、シグナルをキャッチするために何をすべきかの提案に転用されました。
明確にするために、シグナルを処理するために必要なことは何でもしました。パイプを介してメイン プロセスを監視するデーモンをフォークするアプリケーションがあります。メイン プロセスがクラッシュした場合 (セグメンテーション フォールトなど)、必要なすべての情報をパイプに書き込んで中止するシグナル ハンドラがあります。
目標は、アプリケーションに何か悪いことが起こったときに、SIGHUP、SIGUSR1 などの「通常の」操作を台無しにすることなく、できるだけ多くの情報を取得することです。
私の質問は次のとおりです。どのシグナルをキャッチする必要がありますか? 私がそれらをキャッチしなければ、とにかくアプリケーションが中止されるというシグナルを意味します。
これまでのところ、次のリストを作成しました。
- SIGINT (^C、ユーザーが開始しますが、知っておくと便利です)
- SIGTERM (
kill <pid>
シェルから、または知る限り、OutOfMemory の結果である可能性があります) - シグセグ
- シジル
- シグペ
- シグバス
- シグイット
私が何かを見逃しているかどうか誰かが知っていますか? kill -l
それらの多くを持っています... :)