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

mor*_*ous 4 c c++ linux ubuntu boost

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

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

顺便说一下,就库选择标准而言,由于守护进程是非常"关键任务"的组件,如果您提议的库由一组开发人员(例如BOOST库[再次])主动维护,那就更好了,有一个活跃的社区(或者至少是一个在遇到棘手情况时诉诸的邮件列表),而不是在某个地方的某个人...

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

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

Mar*_*tos 7

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


nat*_*ose 6

#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)

具有

int daemon(int nochdir, int noclose);
Run Code Online (Sandbox Code Playgroud)

哪个分叉,从控制终端分离,将所有{stdin,stdout,stderr}重新打开到/ dev/null,并将工作目录更改为根目录.(基于旗帜,当然)