回答:
カーネルがプロセスを強制終了した場合(システムのメモリが不足したため)、カーネルログメッセージが表示されます。チェックイン/var/log/kern.log
(Debian / Ubuntuでは、他のディストリビューションがカーネルログを別のファイルに送信する場合がありますが、通常は/var/log
Linuxの下で)。
OOMキラー(メモリ不足キラー)がトリガーされた場合、十分な仮想メモリがないことを意味することに注意してください。スワップ(または、おそらくRAM)を追加します。
一部のプロセスクラッシュもカーネルログに記録されます(セグメンテーションエラーなど)。
プロセスがcronから開始された場合、エラーメッセージが記載されたメールが必要です。プロセスが端末のシェルから開始された場合、その端末のエラーを確認します。プロセスを実行screen
して、午前中に再びターミナルを表示します。OOM-killerがトリガーされた場合、cronまたはスクリーンプロセスも強制終了した可能性があるため、これは役に立たない可能性があります。しかし、OOMキラーに遭遇した場合、それが修正する必要がある問題です。
ここでプロセスアカウンティングが役立ちます。
簡単に言うと:
apt-get install acct
次に、次のようなコマンドを試してください。
lastcomm
sa
またはUbuntuの場合:
lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct
見る:
更新
奇妙なことに、pacct
ファイルには終了ステータスに関する情報がありますが、印刷されていlastcomm
ないsa
ようです。
したがって、私が見る限り、情報にアクセスするには独自のCプログラムを作成する必要があります。
更新2
終了コードを出力するバージョンは次のとおりです。
最後の2つのフィールドは、シグナルの場合は「S」、終了の場合は「E」で、その後にシグナル番号または終了ステータスが続きます。
したがって、あなたの場合は、おそらくSIGTERMを取得した「S 15」を探しているでしょう。
sleep X mikel stdin 0.00 secs Fri Mar 25 20:15 S 15
「E 0」と比較すると、プロセスはエラーなしで終了しました。
true mikel stdin 0.00 secs Fri Mar 25 20:16 E 0
最小限のテストのみ。
sudoサービス--status-all
このコマンドは、現在実行されているサービスと、開始または停止されていないサービスを示します。
/var/log/kern.log
ですか?