upstartによって管理されるプロセスがあります。内部例外に関するエラーレポートを送信しますが、アプリはCで記述されていないため、SIGSEGVをキャッチしてエラーレポートを送信することはできません。(それはCでも良い習慣ではありません)。
エラー報告を送信するためにスクリプトを開始することは可能であると思いますが、これを行う方法はわかりません。次の3つのアプローチが考えられます。
1)ポストストップスクリプト。ただし、EXIT_SIGNALはポストストップスクリプトでは使用できません
2)start on stopped
。start on stopped
スクリプトを使用して個別のupstart構成を作成します。これはうまく機能しますがrespawn
、元の設定から削除した場合のみです。それは受け入れられません。
3)スクリプト技術を使用します。
script
cmd &
PID=$!
wait $PID
if [ $? = 139 ] ; then cleanup ; fi
end script
ただし、upstartスクリプトブロックset -e
はシェルのように動作するように見えるため、cmdが失敗するとスクリプトが終了し、ifブロックに到達することはありません。