socketio_same_chat_space2

UbuntuサーバでNode.jsのアプリの再起動に苦戦した時のメモ


前回、Node.js製のアプリをVPSのサーバに置いて、

サーバを再起動後にアプリも自動起動するように設定してみた。


しかし、Node.jsというのは仕様上、何かのエラーがあるとアプリが止まってしまう。

これは困るということで色々と調べてみたら、

アプリを永続化するforeverというライブラリがあった。

foreverjs/forever: A simple CLI tool for ensuring that a given script runs continuously (i.e. forever)


というわけで、foreverを利用してみる。


foreverのインストールはnpmのグローバルなインストールを利用する。

※アプリ毎ではなく、サーバ全体で使用するためのインストール


$ npm install -g forever
# foreverのインストールの確認。foreverコマンドが使用できればインストールは成功している
$ forever
help:    usage: forever [action] [options] SCRIPT [script-options] (以下省略)

foreverでNode.jsのアプリを起動してみる

forever start /home/to/path/index.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: /home/to/path/index.js

forever_start


これでNode.js製のアプリの起動と永続化できた。


あとはサーバの再起動時にforeverからNode.jsアプリを起動できるようにする。

# foreverコマンドのパスを調べる
$ type forever
forever is /usr/local/bin/forever

crontab -e

cronの設定画面を開き


@reboot /usr/local/bin/forever start /home/to/path/index.js

SOY CMSのサイトのバックアップをDropboxで行う


このコマンドを登録しておき、サーバの再起動後に

手動でNode.jsアプリを起動させずに


forever_start


この画面が表示されることが確認できれば設定は終了。