这是我在 Ubuntu 11.04 上遇到的一个问题,我为 Node 和 Nginx 制作了两个 upstart 脚本。我将在这里使用 Node 作为示例。我在 http://howtonode.org/deploying-node-upstart-monit 之类的教程中使用相当标准的设置:
start on started mountall
stop on shutdown
respawn
respawn limit 5 60
sudo -u username /usr/local/bin/node /path/to/app.js 2>&1 >> /var/log/node.log
使用“启动应用程序”开始正常。但是后来我手动杀死了节点进程以强制重启,不幸的是 Upstart 没有重生它。事实上,无论我做什么, Upstart 都不会重生它。它显示以下内容,同时根本没有启动 Node:
> sudo start app
app start/running, process 15211
> sudo stop app
stop: Unknown instance:
> sudo status app
app stop/waiting
尝试将代码的 sudo 部分更改为以下内容。我知道你必须包括 export home 虽然我没有看到任何文件说明原因。您正在将“sudo -u 用户名”更改为将运行此代码的用户名吗?您还更改了服务器上 app.js 正确位置的路径吗?
script
export HOME="/root"
exec sudo -u username /usr/local/bin/node /path/to/app.js 2>&1 >> /var/log/node.log
end script
我不确定这是否有帮助,但我看到有些人替换了:
start on started mountall
到
start on (local-filesystems and net-device-up IFACE=eth0)
我是一名优秀的程序员,十分优秀!