Node.jsアプリをLinux環境で常駐化させる nohup編 のforever編です。
Node.jsアプリを動かす時に、コマンド実行したターミナルからログアウトしてしまうと、アプリも終了してしまいます。
sshを切ってもアプリを起動しておくには、いくつか方法があり、上記の記事ではnohup
コマンドを紹介しました。
こちらではforever
について紹介します。
##foreverとは
nodeアプリをdaemon化することができる、npmモジュールです。
https://github.com/foreverjs/forever
また、エラー等でアプリが落ちた場合に、自動的にアプリを再起動してくれます。
この点がnohup
よりも便利な点かなと思います。
##動作確認環境
- AWS EC2 (Amazon Linux)
- Node.js:v8.12.0
- express:4.16.4
##install
$ npm install -g forever
$ forever --version
v0.15.3
##アプリを起動する
$ forever start <JSファイル>
expressでアプリを構築した場合はnpm start
でnode ./bin/www
が動くようになっています(初期状態)。
これを踏まえて、foreverで動かすために以下のコマンドを実行します。
$ forever start ./bin/www
##foreverで動かしているアプリ一覧を表示する
$ forever list
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] AAAA /~~~~/bin/node bin/www 11111 22222 /~~~~/.forever/AAAA.log 0:2:6:13.416
forever
を使って起動しているアプリの情報を見ることができます。
logfile
に書かれているパスのファイルに、アプリのログが出力されています。
##アプリを停止する
停止したいアプリの指定方法がいくつかあります。
指定する値は、それぞれforever list
コマンドで出力された列の値に対応します。
$ forever stop <Index> # forever list コマンドで表示される一番左の列の番号
$ forever stop <uid>
$ forever stop <script>
##オプション
いくつかオプションが準備されています。
オプション | 説明 |
---|---|
-m MAX | 自動で再起動する回数を指定する |
-l LOGFILE | ログの出力ファイル名の変更 |
※-n
オプションでログに行数を表示できそうだったので試したのですが、表示できませんでした。
私が何か間違えているのかもしれないです。。。