ウェブサイト検索

Linux の Node.js アプリケーションの 4 つのプロセス マネージャー


Node.js プロセス マネージャー は、Node.js プロセスまたはスクリプトが継続的に (永久に) 実行されるようにし、システム起動時に自動起動できるようにするための便利なツールです。 。

これにより、実行中のサービスを監視でき、一般的なシステム管理タスク (障害時の再起動、停止、ダウンタイムなしの構成の再ロード、環境変数/設定の変更、パフォーマンス メトリックの表示など) が容易になります。また、アプリケーションのログ記録、クラスタリング、負荷分散など、その他多くの便利なプロセス管理機能もサポートしています。

こちらもお読みください: 2019 年の開発者向けのベスト NodeJS フレームワーク 14 選

パッケージ マネージャーは、実稼働環境でNode.js アプリケーションをデプロイする場合に特に便利です。この記事では、Linux システムでのNode.js アプリケーション管理のための 4 つのプロセス マネージャーを確認します。

1.PM2

PM2 は、オープンソースで高度な機能が豊富なクロスプラットフォームで、ロード バランサーが組み込まれたNode.js 用の最も人気のある運用レベルのプロセス マネージャーです。起動されたすべてのNodejs プロセスを一覧表示、監視し、操作することができ、クラスター モードをサポートします。

アプリケーションの監視をサポートしています。アプリケーションのリソース (メモリと CPU) の使用状況を監視する簡単な方法を提供します。プロセス ファイル (サポートされる形式には、JavaScriptJSONYAML< など) を介して各アプリケーションの動作を構成および調整できるため、プロセス管理ワークフローがサポートされます。)。

実稼働環境ではアプリケーション ログが常に重要です。この点において、PM2 を使用するとアプリケーションのログを簡単に管理できます。ログを処理および表示するためのさまざまな方法と形式が提供されます。ログをリアルタイムで表示し、フラッシュし、必要に応じて再ロードできます。

重要なことは、PM2 は、予想されるまたは予期しないマシンの再起動時にプロセスを自動開始するように構成できる起動スクリプトをサポートしていることです。また、現在のディレクトリまたはそのサブディレクトリでファイルが変更されたときのアプリケーションの自動再起動もサポートします。

さらに、PM2 には、ユーザーが Nodejs プロセス管理用のカスタム モジュールを作成できるモジュール システムが付属しています。たとえば、ログ ローテーション モジュールや負荷分散などのモジュールを作成できます。

最後に重要なことですが、Docker コンテナを使用している場合、PM2 はコンテナの統合を可能にし、プログラムで使用できる API システムを提供します。

2.ストロングループPM

StrongLoop PM は、PM2 と同様に負荷分散が組み込まれた Node.js アプリケーション用のオープンソースの高度な運用プロセス マネージャーでもあり、コマンド経由で使用できます。ラインまたはグラフィカルインターフェイス。

アプリケーションの監視 (イベント ループ時間、CPU およびメモリの消費量などのパフォーマンス メトリックの表示)、マルチホスト展開、クラスター モード、ゼロ ダウンタイムのアプリケーションの再起動とアップグレード、障害時の自動プロセスの再起動、ログの集約と管理をサポートします。

さらに、Docker サポートが付属しており、パフォーマンス メトリクスを StatsD 互換サーバーにエクスポートし、DataDogGraphite< などのサードパーティ コンソールで表示できます。、Splunk、Syslog、生のログ ファイル。

3. 永遠に

Forever は、特定のスクリプトを継続的に (永久に) 実行するための、オープンソースのシンプルで構成可能なコマンドライン インターフェイス ツールです。これは、Node.js アプリとスクリプトの小規模なデプロイメントを実行するのに適しています。コマンドラインを使用する方法とコードに埋め込む方法の 2 つの方法で永久を使用できます。

Node.js プロセスを管理 (開始、一覧表示、停止、すべて停止、再起動、すべて再起動など) することができ、ファイル変更の監視、デバッグ モード、アプリケーション ログ、強制終了をサポートします。プロセスや終了信号のカスタマイズなど。さらに、コマンドラインから直接渡すことも、JSON ファイルで渡すこともできるいくつかの使用オプションをサポートしています。

4. SystemD – サービスおよびシステムマネージャー

Linux では、Systemd は、ファイル システムのプロセスやその他のコンポーネントなどのシステム リソースを管理するデーモンです。 systemd によって管理されるリソースはすべてユニットと呼ばれます。サービス、デバイス、ソケット、マウント、ターゲット、その他多くのユニットなど、 さまざまなタイプのユニットがあります。

Systemd は、ユニット ファイルと呼ばれる構成ファイルを介してユニットを管理します。したがって、Node.js サーバーを他のシステム サービスと同様に管理するには、ユニット ファイル (この場合はサービス ファイル) を作成する必要があります。

Node.js サーバーのサービス ファイルを作成したら、サービス ファイルを起動し、システム起動時の自動起動を有効にし、ステータスを確認し、再起動 (停止して再度起動) することができます。または、その設定をリロードしたり、他の systemd サービスと同様に停止したりすることもできます。

詳細については、「シェル スクリプトを使用して Systemd で新しいサービス ユニットを作成して実行する方法」を参照してください。

まとめ

Node.js パッケージ マネージャーは、プロジェクトを運用環境にデプロイするための便利なツールです。アプリケーションを永久に存続させ、その制御方法を簡素化します。この記事では、Node.js の 4 つのパッケージ マネージャーをレビューしました。追加や質問がある場合は、以下のフィードバック フォームをご利用ください。