如何解决 Upstart 未知作业错误

Zey*_*nel 6 upstart nginx ubuntu

我根据此处的说明设置了 nginx并且一切顺利,但我无法开始

$ start <my app name>
Run Code Online (Sandbox Code Playgroud)

我创建了/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
Run Code Online (Sandbox Code Playgroud)

我重新加载nginx

$ sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)

我尝试

$ start nomilkfor.me
Run Code Online (Sandbox Code Playgroud)

但我明白了 

start: Unknown job: nomilkfor.me
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

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



编辑

出于某种原因,中的空行nomilkforme.conf抛出“未知节”错误。我删除这些行,改变start on startupstart 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")
Run Code Online (Sandbox Code Playgroud)

你能帮助理解这意味着什么吗?



编辑 2

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

z@ubuntu:/$ sudo start nomilkforme
[sudo] password for z: 
start: Job failed to start
Run Code Online (Sandbox Code Playgroud)

Mik*_*any 6

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

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

init-checkconf -d /etc/init/script.conf
Run Code Online (Sandbox Code Playgroud)

它会打印出一堆东西,接近尾声时它应该说:

File /etc/init/script.conf: syntax ok
Run Code Online (Sandbox Code Playgroud)

如果 conf 文件语法没问题,但工作仍然无法启动,我让 Upstart 识别文件的唯一方法是重新启动。