コアダンプ終了ステータス

コアダンプ終了ステータス

プロセスがコアをダンプするときに特定の終了コードを設定しますか?または、コアがシェルスクリプトにダンプされたかどうかを検出する方法はありますか?

時々コアをダンプするアクションをトリガーするシェルスクリプトがあります。私のタスクからコアをダンプする場合は、次の行でステータスを確認し、他の関心のあるタスクにコアダンプを知らせるようにシェルスクリプトを変更したいと思います。

コアダンプを保存して分析します。これで、簡単なfindコマンドでこれを行うことができます。シェルスクリプトの特定の行がコアダンプを引き起こしたことを確認できる場合は、問題をより迅速に診断できます。

Ubuntu 12.04で。

答え1

実際にプロセスが特定の信号によって終了すると、コアダンプが自動的に生成され、終了コードは信号(128 + signal_value)によって決定されます。 Linuxでは、シグナルは少なくともSIGQUIT(3)です。 )、SIGILL(4)、SIGABRT(6)、SIGFPE(8)、SIGSEGV(11)。より完全なリストについては、signal(7)のマニュアルページを参照してください。コアダンプが常に生成されるわけではありません。場合によっては、core(5) のマニュアルページを参照してください。

注:システムコールへのフルアクセス権を持つ言語では(しかしPOSIXシェルスクリプトの場合は該当しません)、サブプロセスがコアダンプを生成した場合はtrueを返すために(Linuxで利用可能)wait使用できます。WCOREDUMP詳細については、wait(2) のマニュアルページを参照してください。

関連情報