node.jsスクリプトをデーモン化するツールにpm2というものがあります。
https://github.com/Unitech/pm2
pm2は起動したnode.jsスクリプトの死活監視を行い、停止した場合は自動的に再起動します。
同じようなツールであるforeverについての記事がでじうぃきに既に上がっているので、その記事の体裁を借りて書いていきます。
以下Version 1.0.1で確認した内容になります。
インストール
npm install pm2 -g
主なコマンド
起動
pm2 start app.js node.jsスクリプトの起動 pm2 start app.js --name="好きな名前" 任意の名前を付けて起動
リスト、詳細表示
pm2 list 実行中スクリプトのリスト表示 pm2 show [app-name] 実行中スクリプトの詳細表示 pm2 monit 実行中スクリプトのメモリ、CPU使用状況表示
ログ
pm2 logs 実行中の全てのスクリプトのログを表示(tail -n 20とtail -fが実行されるイメージ) pm2 logs [app-name] 実行中のスクリプトのログを表示
停止や再起動
pm2 stop [app-name] 実行中スクリプトの停止 pm2 stop all 実行中の全てのスクリプトの停止 pm2 restart [app-name] 実行中のスクリプトの再起動
リストにあるスクリプトの削除
pm2 delete [app-name]
foreverと違って、一度pm2でスクリプトを起動させるとstopしてもpm2 listで停止しているスクリプトが表示されます。
停止して後でまた起動させる時は便利ですが、完全に必要ないときはこのコマンドでリストからスクリプトを削除します。
ログローテート
pm2 install pm2-logrotate
ログローテートするにはpm2-logrotateモジュールをインストールします。
https://www.npmjs.com/package/pm2-logrotate
デフォルトでは最大サイズ10MB、一日単位でログが分けられます。
サーバー起動時に自動的にpm2を自動開始する
pm2 startup [platform] centosの場合:pm2 startup centos pm2 save
上の二つのコマンドを実行すると設定されます。
by 芦野輝明
twitter→https://twitter.com/teriyakiegg