在Linux中编写守护程序或服务的示例

时间:2015-05-06 16:23:26

标签: python c linux process daemon

我一直在寻找Linux的守护进程,例如httpd,并且还查看了一些可以用作骨架的代码。我做了大量的研究,现在我想练习写作。但是,我不确定我可以使用守护进程。我可以尝试执行哪些好的例子/想法?

我正在考虑在Ubuntu上使用守护进程和libnotify来弹出选择推文的弹出通知。

  1. 这是实现守护进程的一个坏例子吗?
  2. 你甚至需要一个守护进程吗?
  3. 这可以作为服务而不是守护进程实现吗?

1 个答案:

答案 0 :(得分:1)

首先:PEP 3143尝试枚举你必须在Python中编写守护进程的所有细节。它指定了一个为您处理这些细节的库。

PEP被推迟 - 至少部分是因为社区认为它更多是POSIX或某些Linux标准组的责任或首先确定什么是成为守护进程必不可少的东西,然后Python才能拥有自己的位置如何实现一个。但它仍然是一个很好的指南。但是,该提议的库的参考实现仍然存在,python-daemon,您可以从PyPI安装。

与此同时,这个项目真正有趣的问题是没有太多的服务与守护进程,作为root与用户。您想要一个跟踪所有用户的流程吗? Twitter帐户,并向任何登录的人发送通知?只是一个每用户进程?或者两者兼而有之,一个进程在观看所有推文,然后通过用户进程发送通知?

当然,你真的不需要守护进程或服务。例如,它可能是一个GUI应用程序,其主窗口是一个配置对话框,即使在关闭配置对话框时也会保持运行(可能带有托盘栏),它也可以正常工作。问题不在于您是否需要守护进程,而在于它是否更合适。这真的是一个设计选择。