1

これは、Node と Nginx 用に作成した 2 つの upstart スクリプトで、Ubuntu 11.04 で経験した問題です。ここでは 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 はそれを再生成しませんでした。実際、アップスタート私が何をしても復活しません。ノードをまったく起動していない間、次のように表示されます。

> sudo start app
app start/running, process 15211
> sudo stop app
stop: Unknown instance: 
> sudo status app
app stop/waiting
4

1 に答える 1

1

コードの sudo 部分を以下に変更してみてください。export home を含める必要があることはわかっていますが、理由を説明しているドキュメントは見たことがありません。「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)
于 2011-09-28T05:20:26.683 に答える