4

Ubuntu 11.10 を実行している開発用 VM に node.js をインストールしてセットアップした後、起動時にスーパーバイザーを自動的に起動し、必要に応じて node.js を呼び出してリロードするようにしたいと考えています。

以下のスニペットは、デフォルトのユーザーがターミナルで実行するとうまく動作しますが、ブート時に実行するにはどうすればよいですか?

cd /var/ && supervisor -w www www/myapp/app.js

ありがとう

4

2 に答える 2

8

Upstart と monit は、起動時にすべてを実行し、ノード プロセスを維持するために非常にうまく機能します。さらに、npm を使用してインストールすることもできます。ここにツットがあります。

起動時にスーパーバイザーを実行する必要がある理由はわかりませんが (論理的には、これが必要になるのは新しいファイルをアップロードするときだけです)、新しいファイルを作成するだけで起動時に起動できると思います。 upstart config (上記と同じファウンデーションを使用):

#!upstart
description "myapp supervisor"
author      "you"

start on startup
stop on shutdown

script
    echo $$ > /var/run/supervise_yourprogram.pid
    // does it need root access? if so...
    // exec sudo -u username supervisor --restart-on-error myapp.js
    supervisor --restart-on-error myapp.js
end script

pre-stop script
    rm /var/run/supervise_yourprogram.pid
end script

スーパーバイザーには独自の --restart-on-error があるため、この場合に monit が必要かどうかはわかりません。

app.jsの代わりに呼び出すラッパーを使用した、まったく異なるアプローチを次に示します。とても面白そうです。

于 2012-01-16T16:02:11.933 に答える
0

この Ubuntu ページには、Ubuntu 用のサービスを作成する方法が記載されています。

于 2012-01-16T15:36:20.197 に答える