这是我在Ubuntu 11.04上遇到的一个问题,我为Node和Nginx编写了两个新手脚本。我将在这里使用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
使用“启动应用”即可开始使用。但后来我手动杀死了节点进程以强制重启,不幸的是,新贵没有重新生成它。事实上,无论我做什么,新手都不会重生它。它显示以下内容,一直没有启动Node:
> sudo start app
app start/running, process 15211
> sudo stop app
stop: Unknown instance:
> sudo status app
app stop/waiting
答案 0 :(得分:1)
尝试将代码的sudo部分更改为以下内容。我知道你必须包括出口回家,虽然我没有看到任何文件说明原因。您正在将“sudo -u username”更改为将运行此代码的用户名正确吗?您还要更改服务器上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)