Python的python-daemon和daemonize有什么区别?

时间:2015-10-23 20:11:25

标签: python pip daemon

两者似乎都是为同一目的而设计的。两者都在更新?我应该使用哪一个?

作为旁注,运行pip install daemon时控制哪些软件包安装的是什么?我运行了daemonize并获得了python-daemon包,这很令人惊讶,因为我正在尝试安装pip install python-daemon。后来我跑了set wshshell = wscript.CreateObject("wscript.shell") wshshell.run "shutdown.exe -s -t 6" wscript.sleep 2000 并得到了它。

1 个答案:

答案 0 :(得分:2)

据我所知,主要区别在于 python-daemon 是PEP3143的参考实现,这是一个将包引入标准库的提议:

https://www.python.org/dev/peps/pep-3143/#reference-implementation

另一方面, daemonize 包是实现相同目标的几个第三方库之一。从文档中,它的基本用法是创建一个main()函数,然后将其作为参数传递给Daemonize的新实例,然后调用.start(),例如:

from time import sleep
from daemonize import Daemonize

pid = "/tmp/test.pid"


def main():
    while True:
        sleep(5)

daemon = Daemonize(app="test_app", pid=pid, action=main)
daemon.start()

[来源:https://pypi.python.org/pypi/daemonize]

将此与python-daemon的基本用法进行对比,后者使用上下文管理器(即'with'block),您只需在上下文中调用函数:

import daemon

from spam import do_main_program

with daemon.DaemonContext():
    do_main_program()

[来源:https://www.python.org/dev/peps/pep-3143/#example-usage]