命令をデーモン化。Node.js PM2を使おう

nodeはターミナル画面を立ち上げてる間に処理をするのが基本なんですが、ターミナル画面を閉じてしまうと処理が止まってしまいます。

ずっと立ち上げとけばいいのですがあまり現実的ではないですね。

そんなときにPM2

ずーーーっと動かしたいタスクを登録しておくと便利です。
 意図的に止めたり、エラーが起きない限りは裏で動いててくれます。

インストールします

$ sudo npm install pm2 -g

多分グローバルにインストールしないとダメです。

$ pm2 start app.js

上記で登録できます。(app.jsを動かす場合)

動作状況確認は

$ pm2 ls

登録解除は

$ pm2 stop app.js

こんな感じでーす。

起動で実行するようにする

上記はラズパイで動かしているのですが、
再起動した時に自動的に起動して欲しいことがあると思います。
まず、起動したいものがPM2でぜんぶ動いている状態にしてください。その状態で立ち上がります。
再起動時になって欲しい状態を作ったら

$ pm2 startup ubuntu

上記はubuntuの場合ですね。他の環境の場合はよくわかりません。
そうすると、このコマンドを打ってね、みたいなメッセージが出るのでその通りにします。
自分の環境に場合は以下のようなメッセージでした。

$ sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup ubuntu -u ubuntu --hp /home/ubuntu

そのあとにそれを保存するため以下を実行します。

$ pm2 save

再起動して立ち上がればオッケーです。

$ sudo reboot