Pythonデーモンが突然終了する原因を突き止めるために監視する最良の方法は何ですか? straceが私の最善の選択ですか、それとも仕事をするPython固有のものがありますか?予期せず終了するpythonデーモンのトラブルシューティングを行いますか?
4
A
答えて
1
私は通常、ログを追加することから始めます。少なくとも、それを起動しているものはstdout/stderrをキャプチャして、スタックトレースを保存するようにしてください。 except
ブロックを調べて、例外をサイレントにキャプチャしていないことを確認してください。
0
あなたはpdb
を使用することができます。
python -m pdb myscript.py
このようなあなたのプログラムを実行すると、それが異常終了した場合、それは事後デバッグを入力します。問題の原因がわかっている場合は、デバッグを開始する時点でimport pdb; pdb.set_trace()
を使用することもできます。ロギングも多大な助けになります。
0
上記の答えとして、python-daemonモジュールを使用している場合は注意してください。ただし、ファイルにロギングするときにロギングモジュールでは機能しませんので、手動でファイルにロギングする必要があります。
また、デーモンは、ループ内で実行してループ内で例外をキャッチすることで、障害が発生した後に再起動します。
例:
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)
関連する問題
- 1. 予期せず終了するデーモンのデバッグ
- 2. プログラムが予期せず終了する
- 3. WindowsスケジューラでPythonスクリプトが予期せず終了する
- 4. Chromeの戻るボタンで予期せずアップロードストリームが終了する
- 5. BASHのファイルが予期せず終了する
- 6. タブコントロールでコンボボックスのドロップダウンが予期せず終了する
- 7. XNA - デバッグ中にプロセスが予期せず終了する
- 8. Qt GUIアプリが予期せず終了する
- 9. win32スレッドが予期せずactiveXで終了する(C++)
- 10. Windows Mobileアプリケーションが予期せず終了する
- 11. Windows 7でWindowsサービスが予期せず終了する
- 12. ループ中にループが予期せず終了する
- 13. Python Pandas ipythonカーネルの再サンプリングが予期せず終了しましたエラー
- 14. サーバーが予期せず接続を終了しました
- 15. git svn:デルタソースが予期せず終了しました
- 16. 100(net :: ERR_CONNECTION_CLOSED):予期せず接続が終了しました
- 17. Phonegap Androidアプリケーションが予期せず終了しました。
- 18. Windowsサービスが予期せず終了しました
- 19. Tortoise SVN - エラー:デルタソースが予期せず終了しました
- 20. node.js:プログラムが予期せず終了するか、ハングするだけです
- 21. Rが予期せず終了し、私は次のコードを試してみましたが、その後、Rが予期せず終了
- 22. は「予期せず終了」私はPythonで結果次のコードを、持っているPythonの
- 23. プラグインをphonegapに登録するとプロセスが予期せず終了する
- 24. 予期せぬ「終了」の修正
- 25. 大きい挿入を実行すると、PostgreSQLの接続が予期せず終了する
- 26. catchブロックの導入後に予期せずプログラムが終了する
- 27. Android:アプリケーションが予期せず終了し、理由がわからなくなる
- 28. weblogicのデプロイコード0でMaven JVMが予期せず終了しました
- 29. ファイルのバッシュ予期しない終了
- 30. 予期せず終了したときに自動的に再実行するサーバーデーモンを作成するには?
これは、人間の相互作用を必要とするように表示されます。これは何日もの間うまく動作しますので、これはうまく動作しません。非インタラクティブなデバッグモードはありますか? – CarpeNoctem
あなたは['screen'](http://linux.die.net/man/1/screen)でそれを実行しようとすると、デバッガをトリガするときにそれにアタッチし、対話的にデバッグすることができます。非対話型デバッグモード??私はそれがロギングだと思います! – zeekay
私は "bash -x"と似た何かを意味していましたが、どこに "デバッグ"の出力を提供しますが、誰かがそれを踏んだり "キーボードのやりとり"をする必要はありません。 – CarpeNoctem