14

使用 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
4

2 回答 2

25

解决方案是更改脚本中的目录。就我而言,用户是 mynodeapp,节点文件位于用户目录 (/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 上的含义。如果他们知道的话,也许有人可以插话!

于 2013-02-12T01:21:10.237 回答
-1

您应该chdir按照 Upstart 文档使用该节:http: //upstart.ubuntu.com/cookbook/#chdir

于 2018-05-14T10:24:14.500 回答