我对C中的守护进程有一个普遍的问题,我现在还没有看到答案.
有没有办法实现守护进程的控制,如约定或标准?
– 还有进一步的解释 –
我已经看到多个文档教授基础知识如何在C中创建一个守护进程.分叉,关闭文件描述符,更改root等等……没问题.当进程进入无限循环时(当创建守护进程时 – 也就是说),它们都会停止.但这只是编写守护进程的一半;你必须以某种方式控制它.我可以让它以不同的方式工作,但我感觉还有更多的东西.
为此(检查是否有进程已在运行或停止正在运行的守护进程,或……)我已经看到了不同的方法(UNIX套接字,文件锁,pid文件,……)及其优缺点.但在我看来,它似乎是意见或个人口味; “你为什么不……”或者“我这样做了,它对我有用”.而且我不确定这是否是自由的标志.
我的意思是,如果你看看sshd,httpd,syslogd等……它们都可以通过init-scripts或service命令(start | stop | status)来控制.这看起来像一个标准.但是,这只是很多人试图遵循的松散惯例,还是在C函数的深海中存在某种“框架”?你是否必须以某种方式使它工作 – 例如让你的程序响应“停止”参数并以某种方式结束守护进程?或者是否存在某种标准,约定,UNIX方式,最佳实践……应该遵循编写“良好,干净的代码”并在大多数环境中集成良好的方法?
我的主要问题归结为:有没有办法实现它?
如果是这样,我在哪里可以找到更多信息?我想还有更多要照顾,而不仅仅是开始和停止.