この記事では、Node.js のプロセスマネージャー PM2 の基本的なコマンドを備忘的に書いておきます。
PM2のインストール
PM2はnpmを使用して簡単にインストールできます。
npm install -g pm2
グローバルインストールを行うことで、どのプロジェクトからでもPM2を利用可能になります。
アプリケーションの起動
アプリケーションを起動するには pm2 start
コマンドを使用します。--name
オプションを付けると、アプリに名前を付けて管理しやすくなります。
pm2 start my-app.js
pm2 start my-app.js --name my-app
これにより、アプリケーションがバックグラウンドで稼働し始めます。
アプリケーションの再起動
コードの変更後などには pm2 restart
コマンドを用いてアプリケーションを再起動します。
pm2 restart my-app
この操作で変更を反映させることができます。
アプリケーションの停止
アプリケーションを停止するには pm2 stop
コマンドを使用します。
pm2 stop my-app
これによりアプリケーションが停止し、PM2の管理下から削除されます。
環境の保存
現在のプロセスリストを保存し、PM2 が再起動した際にこれらのプロセスを自動的に復元するためにsave
コマンドを使用します。これにより、サーバーの再起動時に手動でアプリケーションを再起動する必要がなくなります。コマンドは以下のように使用します。
pm2 save
ログの確認
pm2 logs
コマンドにより、アプリケーションのログを確認することができます。
pm2 logs my-app
ログを通じてアプリケーションの動作状況を確認できます。
モニタリング
pm2 monit
コマンドを使うことで、稼働中のアプリケーションのモニタリングが可能です。
pm2 monit
リアルタイムでのプロセス状況やリソース使用量を確認できます。
クラスターモードでの起動
クラスターモードでは、-i
オプションを使って複数のインスタンスを起動できます。
pm2 start my-app.js --name my-app -i 0
これにより、マシンのコア数に応じてインスタンスが自動的に起動し、ロードバランシングを行います。
設定ファイルを用いた起動指定
Yaml または JSON 形式の設定ファイルを作成し、pm2 start
コマンドに渡すことで、複数の起動オプションを指定できます。
#Yamlファイル例
name: my-app
script: my-app.js
exec_mode: "cluster"
instances: 0
log-date-format: "YYYY-MM-DD HH:mm Z"
// JSONファイル例
{
"name": "my-app",
"script": "my-app.js",
"execmode": "cluster",
"instances": 0,
"log-date-format": "YYYY-MM-DD HH:mm Z"
}
pm2 start pm2config.yml
pm2 start pm2config.json
これにより、アプリケーションの起動時にさまざまな設定を適用できます。
まとめ
PM2 は Node.js アプリケーションの管理を簡単にし、安定稼働をサポートします。基本的なコマンドを理解することで、便利に使えます。