【发布时间】:2013-11-13 14:52:53
【问题描述】:
我正在尝试创建一个在 Red Hat 6.3 平台上运行的 c++ 守护程序,但我无法理解 libc daemon() 调用、daemon shell 命令、startproc、start-stop-daemon 之间的区别以及关于谷歌建议的其他六种创建守护进程的方法。
我看到了需要两个forks 的建议,但调用daemon 只需要一个。为什么需要第二个分叉?
如果我写init.d脚本调用bashdaemon,c代码还需要调用daemon吗?
我实现了我的应用程序来调用 c daemon() 函数,因为这似乎是最简单的解决方案,但我遇到了我的环境变量似乎被丢弃的问题。如何防止这种情况发生?
我还需要以特定用户而不是 root 身份运行守护程序。
创建一个保留其环境变量、以特定用户身份运行并在系统引导时启动的 C++ 守护程序的最简单方法是什么?
【问题讨论】: