安装自定义新贵服务的正确方法

edA*_*a-y 52 upstart

我在我的服务器上使用 upstart 提供服务。编写一个 conf 文件并将其放入/etc/init很容易,但这似乎并没有完全安装。一方面,service --status-all没有列出我的新服务。我检查,如果我做一个链接/etc/init.d/lib/init/ubstart-job它会在状态显示出来。但是手动执行此操作让我觉得我做得不对,并且很可能还有其他配置步骤没有完成。

安装新贵服务以使其在所有处理服务的工具中正确注册的正确方法是什么?

tom*_*ert 46

当您最初将新的 conf 文件复制到 /etc/init 文件夹时,您需要调用:

initctl reload-configuration
Run Code Online (Sandbox Code Playgroud)

这样你的暴发户应该正确注册。

  • 所以这正确地设置了工作(即,`start` 和 `stop` 工作),但它不会使工作全部显示在状态中。我仍然必须手动将它添加到`/etc/init.d/` 才能实现。 (8认同)

小智 18

查看服务手册:

service --status-all 使用 status 命令按字母顺序运行所有 init 脚本。此选项仅调用 sysvinit 作业的状态,可以使用 initctl list 以类似方式查询 upstart 作业。

(强调)

这就是为什么将它添加到 /etc/init.d(sysvinit 作业所在的位置)使它起作用的原因。所以:尝试运行initctl list :) 。


小智 14

对于 SysV 服务

在 Ubuntu 中添加/创建新服务时,请确保遵循以下步骤。

  1. 在中创建服务文件 /etc/init.d/<service name>
  2. chmod 700 /etc/init.d/<service name>
  3. update-rc.d <service name> defaults
  4. update-rc.d <service name> enable

现在看到你的服务

service --status-all
Run Code Online (Sandbox Code Playgroud)

  • 您的答案与 sysv 而不是新贵有关。您可能希望删除它。 (17认同)
  • 这确实是一个有用的回应。 (4认同)