这是我的 upstart 文件/etc/init/myapp.conf
:
description "Example of starting Node with Upstart and Forever"
start on filesystem or runlevel [2345]
stop on runlevel [06]
expect fork
console output
setuid lwood
env HOME=/home/lwood
script
cd $HOME
exec forever -a -l /home/lwood/myapp/applog.log \
start /home/lwood/myapp/app.js
end script
pre-stop script
cd $HOME
exec forever stop /home/lwood/myapp/app.js
end script
你知道为什么$ sudo restart myapp
只停止服务吗?停止后不会启动服务。所以它的效果和 一样$ sudo stop myapp
。
执行$ sudo stop myapp
然后就$ sudo start myapp
可以正常工作了。想知道为什么重新启动的行为会有所不同。
我在使用 Ubuntu 12.04。
答案1
我猜测这与导致 upstart 脚本停止的脚本输出有关。
如果你按照这一页他们似乎建议将标准输出传送到日志文件。
env LOG="/var/log/my-application.log"
exec forever stop /home/lwood/myapp/app.js >> $LOG