0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Nodeプロセス運用管理ツール「pm2」使い方まとめ

Posted at

はじめに

pm2はNodeアプリケーションのプロセスマネージャーで、
アプリケーションの起動、監視、自動再起動、ロードバランシングなどを簡単に行うことができるツールです。
特に、本番環境での運用で力を発揮します。

インストール

npmからグローバルにインストールします。

bash
npm install -g pm2

使い方

pm2の基本的な操作方法です。超簡単です。

アプリケーションの起動

bash
pm2 start app.js

/* プロセス名をつけて起動する場合 */
pm2 start app.js --name my-app

プロセス一覧の確認

bash
pm2 list

ログの表示

bash
pm2 logs

/* プロセス名を指定して閲覧する場合 */
pm2 logs my-app

プロセスの停止

bash
pm2 stop app.js
/* または */
pm2 stop my-app

プロセスの再起動

bash
pm2 restart app.js
/* または */
pm2 restart my-app

pm2自体の自動起動設定(例:Ubuntuの場合)

bash
pm2 startup

その後表示されるコマンドを実行し、

bash
pm2 save

で現在のプロセスリストを保存します。
これでsaveしたプロセスはサーバー再起動時に自動的に起動されます。


クラスターモードでの起動(ロードバランサー)

クラスターモードとは、マルチコアCPUを活用してアプリケーションを複数プロセスで並列実行する仕組みです。
複数のプロセスはpm2が自動的にロードバランシングします。

bash
/* max指定にすると使用できるCPUコア数分だけプロセスを起動します */
pm2 start app.js -i max

メモリ制限つきでの起動

メモリ制限をつけると、プロセスのメモリ使用量が指定以上となった場合に自動で再起動するようになります。

bash
pm2 start app.js --max-memory-restart 200M

プロセスの詳細表示

describeを使用することで、プロセスの詳細情報を閲覧できます。

bash
pm2 describe my-app

/*
Describing process with id 0 - name my-app
┌───────────────────┬────────────────────────────┐
│ status            │ online                     │
│ name              │ my-app                     │
│ restarts          │ 2                          │
│ memory            │ 75.2 MB                    │
│ cpu               │ 0.1%                       │
│ script path       │ /home/user/app/app.js      │
│ exec mode         │ cluster_mode               │
│ instances         │ 4                          │
│ out log           │ ~/.pm2/logs/my-app-out.log │
│ error log         │ ~/.pm2/logs/my-app-err.log │
└───────────────────┴────────────────────────────┘
*/
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?