今回は、Node.jsで作られたアプリをデーモン化して永続的に実行することができる「forever」モジュールについて学習していきましょう!
「Node.jsアプリにエラーが発生しても止めないようにするには?」
「簡単にデーモン化(永続化)することってできるの?」
「foreverモジュールの使い方やコマンド種類を知りたい」
このような内容も含めて、本記事では以下のような構成で解説していきます!
【基礎】「forever」の使い方
【実践】「forever」の基本コマンド
【まとめ】foreverの使い方まとめ
この記事で、foreverをしっかり学習してスキルアップを目指していきましょう!
>>> 今すぐ「foreverの使い方」を知りたい方はこちら
「forever」とは?
まず最初に「forever」モジュールの基本的な概要から見ていきましょう!
「forever」モジュールを使うと、デーモン化…つまりサーバー側のメモリ上に常駐して常に起動しながらさまざまなサービスを提供することが可能になります。
一般的にNode.jsで作られたアプリケーションは、予想外のエラーが発生するとプログラムがストップするように出来ています。
Node.jsのプログラムがストップしてしまうと、ユーザー側は提供されているサービスを利用することができなくなるので、場合によっては永続的に動いて欲しいこともあります。
そこで、「forever」モジュールを利用したNode.jsアプリの開発が検討されているわけです。
「forever」の使い方
この章では、「forever」モジュールを利用するための準備について見ていきましょう!
主に、モジュールの導入方法や実行の仕方について学んでいきます。
foreverモジュールの導入方法
まずは、foreverモジュールを自分の環境へ導入する手順について見ていきましょう!
と、言っても方法は簡単で次のコマンドでnpmからインストールするだけです。
$ npm install -g forever
foreverモジュールはアプリごとに使うものではないので、「-g」を付与してグローバル環境にインストールするという点を覚えておきましょう!
foreverでNode.jsを実行する
foreverモジュールをインストールできたら、実際に使ってみましょう!
foreverはCLIでコマンドを実行しながら利用するのが基本となります。
まずは、常に起動させておきたいNode.jsのファイルを次のように実行しましょう!
$ forever start sample.js
「start」コマンドを使うと、指定したNode.jsファイルはデーモン化されて常に起動するようになります。
この時点で、Node.jsに何らかのエラーが起きても自動的に起動してプログラムを実行してくれます。
「forever」の基本コマンド
この章では、foreverを使う上で基本となるコマンド例について見ていきましょう!
主に、再起動・終了・進捗・設定などを実行・確認する方法について学んでいきます。
「stop/restart」による再起動と終了
まずは、基本コマンドであるforeverの再起動と終了方法について見ていきましょう!
何らかの理由によりforeverで実行しているNode.jsのアプリが停止してしまっているようなケースでは、次のコマンドを実行して再起動する必要があります。
$ forever restart sample.js
逆に、foreverによる実行を完全に停止したい場合には「stop」コマンドを使います。
$ forever stop sample.js
これにより、foreverで実行されていたNode.jsアプリは停止することになります。
「list/log/config」による進捗・設定の確認方法
次に、foreverモジュールを使う上で便利なコマンドについて見ていきましょう!
まず、foreverモジュールを使っているNode.jsアプリの進捗状況を確認したい場合には「list」コマンドを利用します。
$ forever list
「list」コマンドは、現在foreverで実行しているNode.jsアプリのパスや実行時間、ログファイルの保存場所などの詳細情報を出力してくれます。
また、実行時のログ情報に関しては「logs」コマンドで確認することができます。
$ forever logs
さらに、「config」コマンドを実行するとforeverモジュールのコンフィグ情報を出力することもできます。
$ forever config
これにより、現在設定されているオプションなども合わせて確認することができます。
オプション設定について
foreverのコマンドはオプションと一緒に実行することで、さらに効率よく利用することができるので合わせてご紹介しておきます!
例えば、foreverを使ってNode.jsアプリを実行する際に「-w」オプションを付与してみましょう!
$ forever start -w app.js
「-w」オプションを使うと、Node.jsファイルの中身を編集した際に自動的に検知して再実行してくれる監視機能が追加されるのです。
また、「-l」オプションを付与するとログファイルを任意のファイル名で保存することができます。
$ forever start -l forever.log app.js
上記の場合だと、すべてのログが「forever.log」というファイルに格納されていくことになります。
このように、便利な機能を追加できるオプション設定がいくつか用意されているので、ぜひご自身の環境でも試してみてください!
「forever」の使い方まとめ
最後に、foreverコマンドの使い方をまとめておきます!
Node.jsアプリをデーモン化して常に起動したい場合には「start」コマンドを利用します。
$ forever start sample.js
これで、何らかのエラーが起きても常に起動し続けてくれます。
また、foreverで実行しているNode.jsアプリを再起動したい場合には「restart」コマンド、終了したい場合には「stop」コマンドが用意されています。
$ forever restart sample.js $ forever stop sample.js
foreverで実行しているNode.jsアプリの進捗状況を知りたい場合には「list」コマンド、ログ情報を確認したい場合には「logs」コマンドがあります。
$ forever list $ forever logs
また、現在の設定されているコンフィグ情報を確認したい場合「config」コマンドを利用します。
$ forever config
まとめ
今回は、Node.jsアプリをデーモン化して永続的に起動させておくことが可能な「forever」モジュールについて学習しました!
最後に、もう一度ポイントをおさらいしておきましょう!
・Node.jsでエラーが起きてもforeverを利用すると永続的に起動しておくことが可能
・startコマンドで起動させたいNode.jsアプリを指定するだけで永続化が可能
・コマンドと一緒にオプションを指定すると効率よくNode.jsアプリを操作できる
上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!