0

我将python-daemon用于我的家庭项目。但我不明白为什么守护进程在工作 1 天后终止。

这是我的代码:

import requests
import time
import subprocess
import os
import lockfile
import daemon
import logging
import signal
import sys

Class MyDaemon():

def run(self):
        while True:
            try:
                self.check_updates()
                time.sleep(5)
            except ConnectionError as e:
                self.log.error('Connerction Error')
                time.sleep(120)
            except (OSError, IOError) as e:
                self.log.error('I/O Error')
                time.sleep(120)
            except Exception as e:
                self.log.error('Exception: '.format(e.__class__))
                time.sleep(120)

if __name__ == "__main__":
    bot = MyDaemon()
    context = daemon.DaemonContext(
        working_directory=bot.path,
        umask=0o002,
        pidfile=lockfile.FileLock('/tmp/mydaemon.pid'),

    )
    # exit()
    if context.pidfile.is_locked():
        exit('daemon is running now!')

    #context.signal_map = {signal.SIGHUP: 'terminate',
    #                      signal.SIGUSR1: bot.reload_bot(),
    #                      signal.SIGTERM: bot.exit_bot(),
    #                      }

    context.files_preserve = [bot.fh.stream]  # logging

    with context:
        bot.run()

这个用于电报的私人机器人。在函数 check_updates(self) 中发送请求并处理服务器的响应它是 shell 中的 func normali workink(服务器上的 tmux)。在函数 run() 中,我捕获了所有异常(至少我是这么认为的 :))但是这条路径在我错的地方不起作用?

谢谢

4

0 回答 0