监视python守护程序以确定其意外退出的原因的最佳方法是什么?是我最好的选择还是有特定的Python工作?
答案 0 :(得分:1)
我通常会首先添加日志记录。至少,无论启动什么,它都会捕获stdout / stderr,以便保存任何堆栈跟踪。检查您的except
块,确保您没有以静默方式捕获异常。
答案 1 :(得分:0)
您可以使用pdb
:
python -m pdb myscript.py
如果异常退出,运行这样的程序将导致它进入事后调试。如果你知道问题所在,你也可以在想要开始调试时使用import pdb; pdb.set_trace()
。记录也很有帮助。
答案 2 :(得分: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)