python中的守护程序生成已失效/僵尸的Linux进程

时间:2019-03-12 14:56:09

标签: python daemon zombie-process python-daemon defunct

我正在尝试从Flask应用程序中生成长进程。因此,我有一个主要流程来处理传入的Web请求,并使用python-daemon库从中启动守护程序。这是一个最小的工作示例:

  import os
导入时间
导入守护程序
导入锁定文件

def daemon_function():
    返回True

working_directory = os.path.dirname(os.path.abspath(__ file__))
pid_file = os.path.join(working_directory,“ my_daemon.pid”)

daemon_context = daemon.DaemonContext(
        working_directory =正在工作的目录,
        pidfile = lockfile.FileLock(pid_file),
    )

pid = os.fork()
如果pid == 0:
    使用daemon_context:
        daemon_function()

时间。睡眠(10)
 

当主进程仍在运行时使用linux命令 ps -ef 时,守护进程终止后,我看到以下输出:

 用户2484 1 0 09:38吗? 00:00:01 / lib / systemd / systemd --user
用户11269 6061 0 12:07 pts 2 00:00:00 bash
用户28817 11269 1 15:43 pts / 2 00:00:00 python test_daemon.py
用户28818 28817 0 15:43 pts 2 00:00:00 [python] <已停用>
 

之所以在带有daemon_context:的语句之前使用fork函数是因为我需要主进程才能继续。

我应该担心所创建的已终止进程(我可能会产生很多)吗?我如何避免这个僵尸出现?

0 个答案:

没有答案