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

エコー行または 2>&1 で $$ が何を意味するのかはまだわかりません。たぶん、誰かが知っていれば、これでチャイムを鳴らすことができます!

于 2013-02-12T01:21:10.237 に答える