我找到的在 Python 中创建守护进程的每个秘诀都涉及分叉两次(对于 Unix),然后关闭所有打开的文件描述符。(有关示例,请参见http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ )。
这一切都很简单,但我似乎有一个问题。在我正在设置的生产机器上,我的守护进程正在中止 - 因为所有打开的文件描述符都已关闭,所以静默中止。我目前在调试问题时遇到了棘手的问题,并且想知道捕获和记录这些错误的正确方法是什么。
设置日志记录以使其在守护进程后继续工作的正确方法是什么?我只是logging.basicConfig()
在守护进程后第二次调用吗?stdout
捕获和的正确方法是什么stderr
?我不清楚为什么所有文件都被关闭的细节。理想情况下,我的主要代码可以调用daemon_start(pid_file)
并且日志记录将继续工作。