编写C / C ++守护程序(Linux)

时间:2010-07-23 11:04:29

标签: c++ c linux boost ubuntu

我想编写一个通用(C / C ++)库,我将用它来在Linux环境中开发守护进程。而不是重新发明轮子,我想我会来这里查看是否有任何着名的库正在使用中。

库可以是C或C ++ - 虽然我更喜欢C ++(可能是某些东西,或者基于优秀的BOOST库?)。

另外,就库选择标准而言,由于守护进程是非常“关键任务”的组件,如果您提议的库由一组开发人员(例如BOOST库)进行维护,那将会更好。 ]),有一个活跃的社区(或者至少是一个在遇到棘手情况时诉诸的邮件列表),而不是某个地方的某个人......

我看到了这个document,这是一个很好的起点,但它有点过时了,所以我想知道是否有更好的东西,更有名的/用于那里......?

顺便说一下,我将在Ubuntu(10.0.4)上开发

3 个答案:

答案 0 :(得分:7)

另一种解决方案是使用管理多个服务的进程监视器,例如supervisord,在崩溃时重新启动它们,提供简化的Web页面来查看和控制进程的状态,可以管理服务组,支持通用状态改变事件转发机制和其他好东西。这些工具比守护进程库提供了更多的价值。

答案 1 :(得分:6)

答案 2 :(得分:1)

如果您的守护程序使用tcp / ip套接字,则可以使用inet守护程序(或xinetd)。随着新的传入连接的进入,您的流程将按需启动。但是,在大规模部署的情况下可能存在可扩展性问题。