使用 Linux 启动守护进程

4 linux startup daemon

我正在使用 C/C++ 编写一个简单的守护程序应用程序,我希望它在 Linux 启动时启动。

我已经尝试修改/etc/init.d/skeleton以将脚本添加到init.d目录中,如下所示

  1. /usr/sbin/目录中添加了我的守护程序应用程序并更改NAME=myDaemon

  2. update-rc.d myDaemon default在终端写

  3. 并添加了指向rc#.d目录的符号链接

但它没有用。

我的第二次尝试是修改rc.local

/usr/sbin/myDaemon start 
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。

如何让我的守护进程从操作系统启动?我想以编程方式做所有事情。

我使用 Ubuntu 10.10,但如果所有发行版都存在通用解决方案,那就太好了!

Bas*_*tch 9

你不修改/etc/init.d/skeleton文件。您复制到一个新文件/etc/init.d/mamoudservice(替换mamoudservice为更合适的名称),然后适当地编辑该新文件。

然后你添加一个符号链接/etc/rc2.d/S99mamoudservice/etc/init.d/mamoudservice等。

使用例如

   /bin/bash -vx /etc/init.d/mamoudservice start
Run Code Online (Sandbox Code Playgroud)

了解bashshell如何解释您的脚本。

如果您的守护程序程序/usr/sbin/mamouddaemon是用 C 或 C++ 编写的,我建议使用openlogsysloginside,至少是为了获取调试消息(不要输出到守护程序stderrstdout在守护程序中,它可能无处可去)。

拥有/etc/init.d/mamoudservice脚本的另一种方法可能是在您的脚本中添加一个@reboot条目crontab