我已经使用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)我有相当多的异常记录和邮寄给我,所以我知道代码通常是有效的。
在大多数情况下,我什么也得不到,并且watchdog脚本提醒我守护进程不再运行。有没有什么方法可以让我找出或跟踪守护进程正在死亡或被杀死的原因?
发布于 2011-07-07 13:20:04
当你邮寄东西的时候,检查内存消耗。也许它有一个内存泄漏,当它耗尽所有可用的RAM时就会死掉。resource模块将让应用程序找出它的maxrss、ixrss、idrss和isrss,如果你每5分钟左右记录一次这些内容,那么是否发生内存泄漏应该是显而易见的。
https://stackoverflow.com/questions/6328327
复制相似问题