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