使用 Upstart 启动 Node.js,当尝试访问 Node.js 中的文件时,如果不使用完整路径,它将无法访问它们。我需要它来使用工作目录。
start on startup
stop on shutdown
script
echo $$ > /var/run/mynodeapp.pid
exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1
end script
pre-start script
echo "Starting" >> /var/log/mynodeapp.sys.log
end script
pre-stop script
rm /var/run/mynodeapp.pid
echo "Stopping" >> /var/log/mynodeapp.sys.log
end script
最佳答案
解决方案是在脚本中更改目录。在我的例子中,用户是 mynodeapp, Node 文件在用户目录 (/home/mynodeapp/) 中。
script
chdir /home/mynodeapp/
echo $$ > /var/run/mynodeapp.pid
exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1
end script
我还没有弄清楚 $$ 在 echo 行或 2>&1 上的含义。如果他们知道的话,也许有人可以插话!
关于node.js - Upstart node.js 工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823972/