LoginSignup
34
21

More than 5 years have passed since last update.

Node.jsアプリをLinux環境で常駐化させる forever編

Last updated at Posted at 2018-12-03

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 startnode ./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オプションでログに行数を表示できそうだったので試したのですが、表示できませんでした。
私が何か間違えているのかもしれないです。。。

34
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
21