【问题标题】:Differing daemon implementations不同的守护进程实现
【发布时间】:2012-08-10 08:09:48
【问题描述】:

我对 python 比较陌生,到目前为止我只了解了编程的表面,这就是我对守护进程感到困惑的原因。我通常知道他们做什么,但我不确定在 python 中实现它们的最佳方法是什么。我找到了this 链接,它演示了如何在 python 中创建守护进程。但是,我想知道这是否

#!/usr/bin/env python3.2
import threading

class Update(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        pass        #something you want to run in the background

continous = Update
continous.daemon = True
continous.start()

会同样有效吗?

【问题讨论】:

  • 在问题中包含您所指的链接。
  • 哎呀,对不起。我刚才加进去了

标签: python daemon background-process daemons


【解决方案1】:

来自threading documentation:“当没有活着的非守护线程时,整个 Python 程序退出”。守护线程将在应用程序完成后终止。

为了在 python 中实现系统守护进程,您应该使用os.fork。看看example of simple daemon

【讨论】:

  • 您引用的内容是我在发布问题时已经想到的内容。我提供的代码示例创建了一个守护线程,它将在主线程退出后在后台运行。
  • 您对线程将在主线程退出后运行有点错误,因为整个主进程被终止并且没有创建新的(守护进程)进程。如果是这样,那么代码 (pastebin.com/646t71Ba) 将无限期地每秒向 /tmp/log.txt 打印消息,而日志文件保持(几乎)为空。
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多