如何找到python守护程序进程死亡的查找原因?

我使用
python-daemon库在python中实现了一个守护进程.

然而,守护程序似乎定期死亡(或被杀死),其中定期从一天到几个月不等.

我试图通过捕获异常,将它们记录到文件并将它们邮寄给我来找到守护程序死亡的原因.我的脚本的守护进程部分看起来大致如下:

import daemon

context = daemon.DaemonContext(
    working_directory='/foo/',
    pidfile=lockfile.FileLock('/foo/foo.pid')
)

try:
    with context:
        do_stuff()
except Exception, e:
    log_exception_to_file(e)
    mail_exeption_to_me(e)

我有很多例外记录并邮寄给我,所以我知道代码通常有效.

对于大多数情况,我什么都没得到,监视程序脚本提醒我守护程序不再运行的事实.有什么方法可以找出或跟踪守护进程死亡或被杀的原因吗?

最佳答案 在邮寄内容时,请检查内存消耗情况.也许它有内存泄漏并且在消耗所有可用RAM时死亡.资源模块将让应用程序找出其maxrss,ixrss,idrss和isrss,如果你每5分钟左右记录一次,那么是否会发生内存泄漏应该是显而易见的.

点赞