我按照以下方式设置 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 文件。