4

我使用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)

我已经记录了很多异常并邮寄给我,所以我知道代码通常可以工作。

在大多数情况下,我什么也得不到,看门狗脚本会提醒我守护程序不再运行。有什么方法可以找出或跟踪守护进程死亡或被杀死的原因吗?

4

1 回答 1

2

在邮寄东西时,请检查内存消耗。也许它有内存泄漏并在消耗所有可用 RAM 时死亡。该resource模块将让应用程序找出它的 maxrss、ixrss、idrss 和 isrss,如果您每 5 分钟左右记录一次,那么是否发生内存泄漏应该是显而易见的。

于 2011-07-07T05:20:04.360 回答