如何注册一个 upstart 服务?

如何注册一个 upstart 服务?

upstart按照以下方式编写了一个服务Ubuntu 维基文章.conf在 中创建了一个文件/etc/init/。没有关于如何使脚本在initctl list和中可供upstart管理命令(如start和 )使用的说明service官方新贵食谱没有解释这件事。

启动失败

$ start archiva
start: Unknown job: archiva
$ service archiva start
archiva: unrecognized service

答案1

您的 conf 文件中可能存在一些错误。要验证它,请使用:

 init-checkconf archiva.conf

或者

initctl check-config archiva

正如新贵食谱中所述:10.1.6.2 initctl 检查配置10.1.7 init-checkconf

新贵使用在里面守护进程,根据手册页:

在启动时,Upstart init(8) 守护进程从 /etc/init/ 目录中的文件中读取其作业配置,并使用 inotify(7) 监视这些文件的未来更改。

因此,一旦您将配置文件放入/etc/init,您的服务就会被启用,并且在下次重新启动时,init 守护程序将启动它。

答案2

Upstart 使用 inotify。如果您将配置文件放入/etc/init/,Upstart 应该会检测并自动使该作业可用。如果您没有看到它出现,则您的新配置可能有问题。尝试检查日志以查找错误。

答案3

/etc/init/scriptname.conf像在脚本NAME=value中那样在文件中定义变量initd会导致 upstart 给出这种相当无意义的反馈(告诉它存在语法错误比说脚本不存在更合适)。删除该行会导致脚本被识别并可随机启动(请参阅我建议的改进launchpad.net 上的错误 1446577了解详情)。

相关内容