创建Python守护进程的实际库是什么

25 投票
3 回答
5566 浏览
提问于 2025-04-16 10:34

我正在尝试使用python-daemon这个库,因为我觉得它是创建守护进程(Daemon)最安全的方法,不容易遗漏什么。不过,它的文档写得很差,基本上就是PEP 3143

另一方面,我发现了很多链接指向Sander Marechal的用Python写的简单Unix/Linux守护进程。这个看起来是个更好的解决方案,虽然我还没尝试过。

编辑:我已经使用了Sander Marechal的解决方案,效果不错。


那么,在Python社区里,创建守护进程的实际方法是什么呢?是用这些库,还是自己动手做(比如双重分叉等)?

另外,你可能会认为,任何有PEP的库都是更好的选择,因为它更接近于创建守护进程的全面方法(或者至少是更标准的方法),而不是其他解决方案。那么,这个python-daemon包到底是怎么回事,它会被纳入标准库吗?

3 个回答

1

如果你想制作一个守护进程程序,让它在不同的操作系统运行时都能正常工作(比如 initsystemdlaunchd),那么使用 python-daemon 是最常用的方法。这个库可以帮你专注于写守护进程的部分,而操作系统会负责处理其他的工作。

1

Twisted里面有一个叫做twistd的工具。

http://twistedmatrix.com/documents/current/core/howto/basics.html

你可以把你的应用程序打包成twistd的一个插件。

10

我选择了Sander Marechal的一个简单的Unix/Linux守护进程示例,使用Python编写。这个示例确实很简单,你只需要创建一个子类,并重写run()方法,这种方式感觉非常自然(相比于python-daemon模块的with context:方法)。

撰写回答