foreverでnode-ninjaを落とさせない方法

シェアする

  • このエントリーをはてなブックマークに追加

https://node-ninja.com/でSocket.ioを稼働させているのですが、exception発生しちゃうと、簡単にデーモンとして稼働していたスクリプトが停止しちゃうnode.jsですが、ほんと、そういう時かなしいです。

前回紹介した、foreverをnode-ninjaでも動かします。

スポンサーリンク

foreverをインストール

node-ninjaのサーバはx86アーキテクチャではない?のか、手元のMacでコンパイルビルドしたforeverをプロジェクトのnode_moduleに入れてdeployしてもうまく稼働してくれません。

そこで、node-ninjaにログインして

$ npm install forever -g

とすると、 /home/node/local/lib/node_modules/forever/ にインストールされます。

bashの設定を変更

~/.bashrcの以下を

NODE_PATH=$HOME/.node_libraries:/opt/nodejs/node_modules:$HOME/local/lib/node

下記のように変更する

NODE_PATH=$HOME/.node_libraries:/opt/nodejs/node_modules:$HOME/local/lib/node_modules

NODE_PATHに設定しておけば、nodeがどこからでも参照できる。

server.js

deployされると自動的にserver.jsを動かすので、server.jsを以下のように修正する。今回はapp.jsにアプリケーションを書いてあると仮定する。

var forever = require('forever');

var child = new (forever.Monitor)('app.js', {
    silent: true,
    options: []
});

child.on('exit', this.callback);
child.start();

こんな感じで、forever経由でapp.jsを起動するスクリプトにしておくと、deployするだけで自動的にforever経由で起動するデーモンになる。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする