如何解决 Upstart 未知作业错误

如何解决 Upstart 未知作业错误

我按照以下方式设置 nginx按照此处的说明一切顺利,但我无法开始

$ start <my app name>

我创建了/etc/init/nomilkfor.me.conf(这是域名),文件中的内容如下:

description "ubuntu 13.10 on Samsung laptop"
author "zeynel"
                                                   
start on startup
stop on shutdown
                                                   
setuid deploy
chdir /deploy
console log
                                                   
env PORT=4000
exec java -jar my-webapp-0.1.0-standalone.jar

我重新加载了 nginx

$ sudo nginx -s reload

我尝试

$ start nomilkfor.me

但我明白 

start: Unknown job: nomilkfor.me

我究竟做错了什么?

我也尝试打开日志文件,/var/log/upstart但无法用 nano 打开它们。



编辑

由于某种原因,空白行会nomilkforme.conf抛出“未知节”错误。我删除了这些行,并start on startup改为start on (local-filesystems and net-device-up IFACE=eth0) 按照此页面现在我得到了

z@ubuntu:/$ start nomilkforme
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.86" (uid=1000 pid=17258 comm="start nomilkforme ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

你能帮助理解这是什么意思吗?



编辑2

显然,上述错误是因为我没有使用“sudo”而引发的,但使用 sudo 后我得到了这个错误(通过这次尝试我也恢复了start on startup

z@ubuntu:/$ sudo start nomilkforme
[sudo] password for z: 
start: Job failed to start

答案1

我发现此错误消息至少有两个原因:第一是语法错误,第二是启动时 conf 文件不存在,因此 Upstart 拒绝运行它。

要确保您的 conf 文件语法正确,请运行:

init-checkconf -d /etc/init/script.conf

它会打印出一堆内容,结尾处会显示:

File /etc/init/script.conf: syntax ok

如果 conf 文件语法正确但作业仍然无法启动,那么让 Upstart 识别该文件的唯一方法就是重新启动。

答案2

initctl reload-configuration

让 upstart 找到新的 .conf 文件。

相关内容