Upstart 作业未被识别

Upstart 作业未被识别

我写了一个简单的 upstart 任务:

start on runlevel [2345]
stop on runlevel [016]

exec dnscrypt-proxy -E -R cisco-ipv6

它在启动时正常启动,但仍无法被service --status-all和识别initctl list。我在网上搜索过,发现一些类似的问题是由语法错误引起的,所以我用 进行了检查init-checkconf,结果显示“语法正常”。我是不是漏掉了什么?

编辑

我发现了这个相关问题:安装自定义 upstart 服务的正确方法

事实证明,我sudo在运行的时候遗漏了initctl list。但它并没有解释为什么有些服务需要 root 权限才能显示,而其他服务则不需要,因为所有.conf文件都有完全相同的所有者和权限。

答案1

看起来你dnscrypt-proxy -E -R cisco-ipv6需要网络,并且你的初始化脚本在网络和其他所需服务之前运行,所以编写你的脚本

start on started networking 

或者

start on network-interface-up INTERFACE=eth0 

如果你的服务需要文件系统,那么你可以写

start on filesystem and started networking

如果这还依赖于其他服务,则包括

start on started other-service

你可以学习这里

相关内容