【问题标题】:Examples for writing a daemon or a service in Linux在 Linux 中编写守护程序或服务的示例
【发布时间】:2015-05-06 16:23:25
【问题描述】:

我一直在研究 Linux 的守护进程,例如 httpd,并且还研究了一些可以用作骨架的代码。我已经做了相当多的研究,现在我想练习写它。但是,我不确定我可以使用守护进程做什么。我可以尝试执行的任何好的示例/想法?

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

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

【问题讨论】:

  • 一个有用的函数是:man7.org/linux/man-pages/man3/daemon.3.html
  • 守护进程、服务、后台任务......只是名称...... - 真正想要做什么?
  • @alk 我只是想编写自己的守护程序脚本来练习和了解更多信息。但我想不出任何想法。我能想到的最好的是我在问题中提到的那个。
  • @Shivaji_Vidhale: 很难想出一个实用的想法,但对于一个玩具......类似于syslogd 的记录器守护程序怎么样,它侦听UDP 上的消息端口并将它们写入文件?当然你已经有了一个更好的syslogd,如果你真的需要写一个,你可以inetd-ify 它而不必担心守护进程或监听套接字等等,但它应该是你的可以写大约 20 行代码和玩。而且,与您的想法不同,它不需要与 GUI 交互,这对于守护进程来说可能很棘手。

标签: python c linux process daemon


【解决方案1】:

首先:PEP 3143 试图列举所有在 Python 中编写守护程序所需的繁琐细节。它指定了一个为您处理这些细节的库。

PEP 被推迟了——至少部分原因是社区认为,在 Python 能够拥有自己的位置之前,首先明确定义作为守护进程的必要条件更多是 POSIX 或某些 Linux 标准组的责任。如何实现一个。但它仍然是一个很好的指南。但是,该建议库的参考实现仍然存在,如 python-daemon,您可以从 PyPI 安装它。


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

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

【讨论】:

  • 好吧,但我想做的只是练习为 Linux 编写守护程序脚本或服务器端组件。我看到了关于 HowTo 的东西,但没有任何东西让我有任何开始工作的想法。你能想出任何例子来帮助我更深入地了解为 Linux 编写脚本吗?我可以进行任何初学者级别的实验吗?
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 2018-12-18
  • 2010-09-16
  • 1970-01-01
  • 2010-11-21
  • 2010-12-08
  • 1970-01-01
  • 2011-03-31
相关资源
最近更新 更多