プロセスの動作を追跡するには、Linuxのacct(BSDプロセス統計)を使用する必要がありますか?

プロセスの動作を追跡するには、Linuxのacct(BSDプロセス統計)を使用する必要がありますか?

slapd時々何らかの理由で停止するデーモンプロセス()があります。セグフォルトは発生しません。ログには特別な内容はありません。

だから私が使用したいのは、acctプロセスのライフサイクル、特に終了値を追跡することです。manカーネルが値を記録したことを示します。驚いたことに、私のdump-acct情報は表示されません...

print_pacct_record()関数に次の行を追加してソースを変更する必要がありました。

(void)fprintf(out, "%4u|", rec->ac_exitcode >> 8);

編集:この変更は最近追加されたアルコール

しかし、これだけでは問題を見つけるには足りないと思います。

プログラムの終了方法を追跡するより良い方法はありますか?たとえば、スタックトレースは興味深いでしょう。 「最後の瞬間トラッキング」が良いでしょう。

strace私はどちらかを考えましたが、ltraceプログラムは「自己停止」する前に数日間実行することができます。パフォーマンスに影響を与える「トラッキング」が心配です。私が助けることができるかもしれませんgdb

ベストアンサー1

straceそのオプションを使用して出力をファイルにリダイレクトするとどうなりますか-o

[root@host ~]# strace -o /root/slapd_strace.log slapd --parameters --you --want

おすすめ記事