【Node.js入門】foreverの使い方とデーモン化による永続化・自動起動まとめ!

今回は、Node.jsで作られたアプリをデーモン化して永続的に実行することができる「forever」モジュールについて学習していきましょう!

「Node.jsアプリにエラーが発生しても止めないようにするには?」
「簡単にデーモン化(永続化)することってできるの?」
「foreverモジュールの使い方やコマンド種類を知りたい」

このような内容も含めて、本記事では以下のような構成で解説していきます!

【基礎】「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アプリを操作できる

上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

マサト

マサト

フリーランスのIT系ライターを8年従事。侍ブログ編集部としては、これまで270記事以上の記事を執筆。
独学でJavaScript, Node.js, Linuxを3年学習。個人プロダクトのWebメディア・アプリ作成経験あり。

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー