4

Pythonデーモンを監視して予期せず終了する原因を特定する最良の方法は何ですか? strace は私の最良の選択肢ですか、それとも仕事をする Python 固有の何かがありますか?

4

3 に答える 3

1

通常、ログを追加することから始めます。少なくとも、スタック トレースが保存されるように、起動するものは何でも stdout/stderr をキャプチャします。ブロックを調べexceptて、黙って例外をキャプチャしていないことを確認してください。

于 2011-05-11T19:12:23.957 に答える
0

使用できますpdb

python -m pdb myscript.py

このようにプログラムを実行すると、異常終了した場合に事後分析デバッグに入ります。問題がどこにあるかがわかれば、import pdb; pdb.set_trace()デバッグを開始したい時点で使用することもできます。また、ロギングも大いに役立ちます。

于 2011-05-11T19:13:53.937 に答える
0

上記の回答のとおり、Logging を追加してみてください。ただし、python-daemon モジュールを使用している場合は、ファイルにログを記録するときに Logging モジュールが機能しないので注意してください。手動でファイルにログを記録する必要があります。

また、ループ内でデーモンを実行し、ループ内で例外をキャッチして、失敗した後にデーモンを再起動します。

例:

while True:
    try:
        log_to_file("starting daemon")
        run_daemon()
        log_to_file("daemon stopped unexpectedly")
        sleep(1)
    except Exception as err:
        log_to_file(err)
于 2011-05-12T00:23:04.367 に答える