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 max
max
はCPUコア数と同数のインスタンスを起動することを意味します。また、具体的なインスタンス数を指定することもできます(例:-i 4
で4つのインスタンスを起動)。
ログの管理
特定のアプリケーションのログを表示するには:
1pm2 logs app.js
またはすべてのアプリケーションのログを表示するには:
1pm2 logs
アプリケーションの監視
pm2 monit
コマンドを使用すると、すべてのアプリケーションの状態をリアルタイムで監視できます:
1pm2 monit
JSON設定ファイルの使用
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アプリケーションのライフサイクルを管理するための完全なソリューションを提供し、開発から本番環境へのデプロイに至るまで、アプリケーション管理の複雑さを大幅に簡素化し、運用の安定性と信頼性を向上させます。