PM2使用詳細解説:Node.jsアプリケーションのプロセスマネジメントツール
- 960単語
- 5分
- 25 Jul, 2024
PM2は、Node.jsアプリケーション専用に設計されたプロセスマネジメントツールで、アプリケーションのデプロイと管理を簡素化することを目的としています。アプリケーションの起動、停止、再起動、監視などの機能を提供し、自動再起動、負荷分散、ログ管理などの高度な特性も備えています。以下にPM2の詳細な紹介と使い方を説明します。
主な機能
- プロセスマネジメント:アプリケーションの起動、停止、再起動、削除。
- 監視:アプリケーションの状態、CPU、メモリ使用状況をリアルタイムで監視。
- ログ管理:アプリケーションのログを表示および管理。
- 負荷分散:クラスターモード(Cluster Mode)を通じて負荷分散を実現。
- 自動再起動:アプリケーションがクラッシュまたはエラー発生時に自動的に再起動。
- 起動スクリプト:システム起動時にアプリケーションを自動的に起動。
- 設定管理:JSON設定ファイルを使用して複数のアプリケーションを管理。
PM2のインストール
PM2を使用するには、まずインストールする必要があります。npmを通じてインストールできます:
1npm install -g pm2基本的な使い方
アプリケーションの起動
アプリケーションを起動するには、pm2 startコマンドを使用し、エントリファイルを指定します:
1pm2 start app.jsアプリケーションの状態を確認
現在実行中のすべてのアプリケーションとその状態を確認するには、pm2 listコマンドを使用します:
1pm2 listアプリケーションの停止
特定のアプリケーションを停止するには、pm2 stopコマンドを使用します:
1pm2 stop app.jsまたはアプリケーションIDを使用して停止します:
1pm2 stop 0アプリケーションの再起動
特定のアプリケーションを再起動するには、pm2 restartコマンドを使用します:
1pm2 restart app.jsまたはアプリケーションIDを使用して再起動します:
1pm2 restart 0アプリケーションの削除
特定のアプリケーションを削除するには、pm2 deleteコマンドを使用します:
1pm2 delete app.jsまたはアプリケーションIDを使用して削除します:
1pm2 delete 0高度な使い方
複数インスタンスの起動(クラスターモード)
-iオプションを使用すると、複数のインスタンスを起動してマルチコアCPUを利用できます:
1pm2 start app.js -i maxmaxはCPUコア数と同数のインスタンスを起動することを意味します。また、具体的なインスタンス数を指定することもできます(例:-i 4で4つのインスタンスを起動)。
ログの管理
特定のアプリケーションのログを表示するには:
1pm2 logs app.jsまたはすべてのアプリケーションのログを表示するには:
1pm2 logsアプリケーションの監視
pm2 monitコマンドを使用すると、すべてのアプリケーションの状態をリアルタイムで監視できます:
1pm2 monitJSON設定ファイルの使用
PM2は、JSON設定ファイルを使用してアプリケーションを管理できます。まず、ecosystem.config.jsファイルを作成します:
1module.exports = {2 apps: [3 {4 name: "app",5 script: "./app.js",6 instances: "max",7 exec_mode: "cluster",8 watch: true,9 env: {10 NODE_ENV: "development",11 },12 env_production: {13 NODE_ENV: "production",14 },15 },16 ],17};次に、pm2 startコマンドを使用して設定ファイル内のアプリケーションを起動します:
1pm2 start ecosystem.config.js起動時に自動スタート設定
PM2は、システム起動時にアプリケーションを自動的に起動するように設定できます。まず、スタートアップスクリプトを生成します:
1pm2 startup次に、現在のプロセスリストを保存します:
1pm2 saveアプリケーションのリロード
サービスを中断することなくアプリケーションをリロードするには、pm2 reloadコマンドを使用します:
1pm2 reload app.jsまたはアプリケーションIDを使用します:
1pm2 reload 0よく使うコマンドのまとめ
- アプリケーションの起動:
pm2 start <app> - アプリケーションの停止:
pm2 stop <app> - アプリケーションの再起動:
pm2 restart <app> - アプリケーションの削除:
pm2 delete <app> - アプリケーションリストの表示:
pm2 list - アプリケーションログの表示:
pm2 logs <app> - リアルタイム監視:
pm2 monit - 自動起動設定:
pm2 startup,pm2 save
これらの機能を通じて、PM2はNode.jsアプリケーションのライフサイクルを管理するための完全なソリューションを提供し、開発から本番環境へのデプロイに至るまで、アプリケーション管理の複雑さを大幅に簡素化し、運用の安定性と信頼性を向上させます。