猿问

如何在Python中创建守护进程?

如何在Python中创建守护进程?

谷歌搜索显示x2代码段。第一个结果是这个代码配方其中包含了大量的文档和解释,以及下面的一些有用的讨论。

然而,另一个代码示例,虽然不包含这么多文档,但包含了用于传递命令的示例代码,如开始、停止和重新启动。它还创建了一个PID文件,可以方便地检查守护进程是否已经运行等等。

这些示例都解释了如何创建守护进程。还有什么需要考虑的吗?一个样本比另一个好吗?为什么?


回首忆惘然
浏览 1015回答 3
3回答

开心每一天1111

电流溶液的参考实现Pep 3143(标准守护进程库)现在可作为Python-守护进程.历史答案桑德·马雷夏尔氏症代码样本是优于原来的,最初是在2004年张贴。我曾经为Pyro提供了一个守护程序,但是如果我不得不重新编写它,我可能会使用Sander的代码。

HUWWW

确实有许多微妙的事情当变成一个行为良好的守护进程:防止核心转储(许多守护进程作为root运行,核心转储可以包含敏感信息)在chroot高尔为用例设置适当的UID、GID、工作目录、umask和其他流程参数。放弃高架suid, sgid特权关闭所有打开的文件描述符,并根据用例进行排除。如果在已经分离的上下文中启动,则行为正确,如init, inetd等为合理的守护进程行为设置信号处理程序,但也使用例确定的特定处理程序。重定向标准流stdin, stdout, stderr因为守护进程不再有控制终端。将PID文件作为协作建议锁处理,这是一个整罐蠕虫本身有许多矛盾但有效的行为方式当进程终止时,允许进行适当的清理。实际上,它将成为一个守护进程,而不会导致僵尸其中一些是标准,如规范Unix文献中所述(UNIX环境下的高级编程,作者:已故的W.Richard Stevens著,Addison-Wesley,1992)。其他,如流重定向和PID文件处理,是常规行为大多数守护进程用户都希望如此,但这并不那么标准化。所有这些都由佩普3143“标准守护进程库”规范..这个Python-守护进程参考实现适用于Python2.7或更高版本,Python3.2或更高版本。
随时随地看视频慕课网APP

相关分类

Python
我要回答