Python守护进程在一两个小时后退出

Python守护进程在一两个小时后退出,python,daemon,Python,Daemon,我构建了一个python守护进程,每分钟计算一次文件的行数,做一些数学运算,并计算最后一分钟添加的行数。输出是一个带有计数和时间戳的基本csv,这样我就可以用另一个脚本来绘制它 守护进程运行一段时间,“似乎介于和小时或两小时之间”,然后退出。没有迹象表明原因 基本守护程序模板源自: 有人知道为什么会退出吗?除了一个例外,循环结束的原因是这样的: if not buffer: break 我建议您在中断之前记录这一行,然后从那里开始跟踪它 更新 我更仔细地看了看代码,忽略了内部循环。没有任何东西

我构建了一个python守护进程,每分钟计算一次文件的行数,做一些数学运算,并计算最后一分钟添加的行数。输出是一个带有计数和时间戳的基本csv,这样我就可以用另一个脚本来绘制它

守护进程运行一段时间,“似乎介于和小时或两小时之间”,然后退出。没有迹象表明原因

基本守护程序模板源自:


有人知道为什么会退出吗?

除了一个例外,循环结束的原因是这样的:

if not buffer: break
我建议您在中断之前记录这一行,然后从那里开始跟踪它

更新
我更仔细地看了看代码,忽略了内部循环。没有任何东西会破坏外部循环,所以我猜这一定是个例外。一个超级快速的建议是,只需将整个循环包装在一个try-except中,并记录发生的任何事情:

try:
    while True:
        ...
except Exception, e:
    # log e
    raise

你是如何启动它的?尝试将stdout和stderr重定向到一个文件,看看它在存在之前是否记录了一些内容。例如,如果使用bash shell,命令将是python d.py 2>&1>/tmp/my.logI。我将使用“python mydaemon.py start”启动它。我已经继续并重定向了它,我们将看到下次退出时会发生什么。好的,我已经在另一个系统上设置了第二个实例,并考虑到这一点,我会再看一两个小时后会发生什么我终于明白了,每两个小时就有一个讨厌的cron作业在运行。cron调用一个bash脚本来重新启动另一个python脚本,并调用“killall python”,这当然也会杀死这个守护进程。谢谢你的帮助。
try:
    while True:
        ...
except Exception, e:
    # log e
    raise