创建Python守护进程的实际库是什么
我正在尝试使用python-daemon这个库,因为我觉得它是创建守护进程(Daemon)最安全的方法,不容易遗漏什么。不过,它的文档写得很差,基本上就是PEP 3143。
另一方面,我发现了很多链接指向Sander Marechal的用Python写的简单Unix/Linux守护进程。这个看起来是个更好的解决方案,虽然我还没尝试过。
编辑:我已经使用了Sander Marechal的解决方案,效果不错。
那么,在Python社区里,创建守护进程的实际方法是什么呢?是用这些库,还是自己动手做(比如双重分叉等)?
另外,你可能会认为,任何有PEP的库都是更好的选择,因为它更接近于创建守护进程的全面方法(或者至少是更标准的方法),而不是其他解决方案。那么,这个python-daemon
包到底是怎么回事,它会被纳入标准库吗?
3 个回答
1
如果你想制作一个守护进程程序,让它在不同的操作系统运行时都能正常工作(比如 init
、systemd
、launchd
),那么使用 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:
方法)。