【发布时间】:2014-02-19 13:52:39
【问题描述】:
我正在尝试找到一种从我的程序中启动自定义守护程序的方法。守护进程本身是使用双分叉机制实现的,如果直接启动就可以正常工作。
到目前为止,我遇到了各种启动守护进程的方法:
- 创建一个初始化脚本并将其安装到 init.d 目录。
- 使用 start-stop-daemon 命令启动程序。
- 创建 .desktop 文件并放置在自动启动路径之一中。
虽然已知第 2 种方法使用命令行启动服务,但第 3 种方法用于在用户登录时自动启动服务(或任何其他应用程序)。
到目前为止,我的猜测是程序可以直接使用 exec() 系列函数执行,或者“start-stop-daemon”命令可以通过 system() 函数执行。
有没有更好的方法来启动/停止服务?
【问题讨论】:
-
你要求更好的方式;请告诉我们不同的方式在哪些方面可以更好。更便携?更快的执行?更短的代码?对特殊情况更健壮?其他方面?
-
我不确定这是否是建议的方法。我是 Linux 编程新手,找不到任何关于以编程方式启动守护进程的建议方法的参考
-
我从未听说过用户进程启动系统守护进程,除非它是系统配置工具或类似工具。所以我想通过
exec()调用启动/停止脚本是唯一的预期方式。 -
@Alfe:感谢您的建议。我想这回答了我的问题。您可以将其发布为答案,以便我标记它吗?
-
我只是从未听说过,但我认为这不是一个合适的答案 ;-) 感谢您提出接受这一点,但我认为我们应该让您的问题保持开放(不接受和未回答),直到有人有更明确的说法。