为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

回首忆惘然 2019-06-18 15:59:49
如何在Python中创建守护进程?谷歌搜索显示x2代码段。第一个结果是这个代码配方其中包含了大量的文档和解释,以及下面的一些有用的讨论。然而,另一个代码示例,虽然不包含这么多文档,但包含了用于传递命令的示例代码,如开始、停止和重新启动。它还创建了一个PID文件,可以方便地检查守护进程是否已经运行等等。这些示例都解释了如何创建守护进程。还有什么需要考虑的吗?一个样本比另一个好吗?为什么?
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

电流溶液

的参考实现Pep 3143(标准守护进程库)现在可作为Python-守护进程.

历史答案

桑德·马雷夏尔氏症代码样本是优于原来的,最初是在2004年张贴。我曾经为Pyro提供了一个守护程序,但是如果我不得不重新编写它,我可能会使用Sander的代码。


查看完整回答
反对 回复 2019-06-18
?
HUWWW

TA贡献1874条经验 获得超12个赞

确实有许多微妙的事情当变成一个行为良好的守护进程:

  • 防止核心转储(许多守护进程作为root运行,核心转储可以包含敏感信息)

  • chroot高尔

  • 为用例设置适当的UID、GID、工作目录、umask和其他流程参数。

  • 放弃高架suidsgid特权

  • 关闭所有打开的文件描述符,并根据用例进行排除。

  • 如果在已经分离的上下文中启动,则行为正确,如initinetd

  • 为合理的守护进程行为设置信号处理程序,但也使用例确定的特定处理程序。

  • 重定向标准流stdinstdoutstderr因为守护进程不再有控制终端。

  • 将PID文件作为协作建议锁处理,这是一个整罐蠕虫本身有许多矛盾但有效的行为方式

  • 当进程终止时,允许进行适当的清理。

  • 实际上,它将成为一个守护进程,而不会导致僵尸

其中一些是标准,如规范Unix文献中所述(UNIX环境下的高级编程,作者:已故的W.Richard Stevens著,Addison-Wesley,1992)。其他,如流重定向和PID文件处理,是常规行为大多数守护进程用户都希望如此,但这并不那么标准化。

所有这些都由佩普3143“标准守护进程库”规范..这个Python-守护进程参考实现适用于Python2.7或更高版本,Python3.2或更高版本。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 1014 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信