gpt4 book ai didi

python - 守护进程意外死亡

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:20 27 4
gpt4 key购买 nike

我有一个 python 脚本,我使用这段代码对其进行守护进程

        def daemonise():
from os import fork, setsid, umask, dup2
from sys import stdin, stdout, stderr

if fork(): exit(0)
umask(0)
setsid()
if fork(): exit(0)

stdout.flush()
stderr.flush()
si = file('/dev/null', 'r')
so = file('daemon-%s.out'%os.getpid(), 'a+')
se = file('daemon-%s.err'%os.getpid(), 'a+')
dup2(si.fileno(), stdin.fileno())
dup2(so.fileno(), stdout.fileno())
dup2(se.fileno(), stderr.fileno())
print 'this file has the output from daemon%s'%os.getpid()
print >> stderr, 'this file has the errors from daemon%s'%os.getpid()

脚本在

while True: try: funny_code(); sleep(10); except:pass;

循环。它可以正常运行几个小时,然后意外死亡。我该如何去调试这样的恶魔,错误的守护进程。

[编辑]

在不启动像 monit 这样的进程的情况下,有没有办法用 python 编写看门狗,它可以监视我的其他守护进程并在它们宕机时重新启动? (谁看看门狗。)

最佳答案

你真的应该使用 python-daemon为此,这是一个实现 PEP 3141 的库对于标准守护进程库。通过这种方式,您将确保您的应用程序为它运行的任何类型的 UNIX 做所有正确的事情。无需重新发明轮子。

关于python - 守护进程意外死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1599798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com