pm2マルチプロセスマージログ
pm2はマルチプロセスを開始します
pm2 は、複数のプロセスを開いて高い同時実行性を処理できる環境です。
PM2をインストールする
npm install pm2 -g
PM2を開始
pm2 start xxx
デフォルトの起動は単一インスタンスのフォーク モードです。PHP などのスクリプト言語の起動にも使用できますが、個人的には pm2 を非クラスターモードで fork モードで実行して開始したプロジェクトは基本的に役に立たないと考えています。
pm2 start xxx -i 0
(備考: CPU のコア数によって複数のクラスター プロセスが開始されます。>0 を指定すると、指定された数に従ってプロセスが開始されます。プロセスの最大数は CPU コアの数を超えません。 -cluster (k8s環境、マルチインスタンス環境が提供されています。クラスターを再度開いてもあまり意味がありません) 環境はクラスターモードを使用し、pm2が提供するロードバランシングを使用し、フル稼働にすることを強くお勧めします。 CPUの使用)
PM2プロセスを停止します
指定されたpm2によって開始されたプロセスを停止します
pm2 stop xxx
すべての pm2 プロセスを停止します
pm2 stop all
PM2プロセスの削除
指定した起動プロセスを削除します
pm2 delete xxx
すべての起動プロセスを削除します
pm2 delete all
プロセスを強制終了する
pm2 kill
上記のpm2 delete all削除処理との違いは、kill はプロセスを完全に強制終了することと、プロセス番号は最初から計算されること、delete でプロセスを削除した後、新しいプロセスを開始すると最後のプロセス番号を引き継いで継続することです。増加例
:
操作1
delete を使用してプロセスを強制的に削除します
再度マルチプロセスを開始した後、以前の ID 番号に注意してください。
操作2
kill でプロセスを強制
終了して再起動すると、ID 番号が最初から計算されていることがわかりました。
PM2プロセスを再起動します
PM2 は指定されたプロジェクト プロセスを再起動します
pm2 restart xxx
PM2 はすべてのプロジェクト プロセスを再起動します
pm2 restart all
スムーズで違和感のない再起動が実現でき、プロジェクトが中断されません。
ログ
すべてのログを表示する
pm2 logs
ログをjson形式で表示する
pm2 logs --json
ログファイルに書き込まれるログはjson形式です。
pm2 start xxx -i 0 --log-type=json
マージログ
フォーク モードの場合、ログの場所が指定されていない場合、pm2 ログのデフォルトの場所は
Linux/Mac になります。
/root/.pm2/logs/
Windows システム:
C:\Users\用户\.pm2\logs
注1: クラスタモードを使用し、起動プロセス数を指定しない場合、デフォルトではプロセスログをアクティブにマージします。プロセス数を指定すると、プロセス数に応じてプロセスログファイルが生成されます。デフォルトは次のとおりです: 開始されると、プロセス ログ ファイルが作成されます。
例: 3 つのプロセスを開始して、次のようなログを生成します
。pm2 start xxx -i num
注 2: フォーク モードの場合、生成されるログは、プロセス ログなしで -i 0 で開始したものと同じになります。
操作 1: 指定した数のプロセスを使用して開始する必要があり、ログをマージしたい場合は、次のコマンドを使用できます。
pm2 start ./bin/www -i 3 --log-type=json --merge-logs -l --log /root/.pm2/logs/merge.log
マージされたログ (マルチプロセスの標準ログとエラー ログが結合される)
操作 2: マルチプロセス モードで、標準ログとエラー ログを分離し、マルチプロセス ログをマージする場合は、次のコマンドを使用できます。
pm2 start ./bin/www -i 3 --log-type=json --merge-logs --output /root/.pm2/logs/out.log --error /root/.pm2/logs/error.log
ログをクリアする
pm2 flush
バックアップログのポーリング
pm2-logrotate をインストールする
pm2 install pm2-logrotate
バックアップログのポーリング
pm2 set pm2-logrotate:max_size 100M;
pm2 set pm2-logrotate:retain 3
上記のコマンドは次のとおりです。
- 100Mを超えた場合のバックアップ
- 3 つのログ ファイルをポーリングし、3 つを超えると、先頭のログ ファイルが自動的に置き換えられます。
デフォルトでは 30 秒に 1 回チェックします。
詳細な設定については、公式 Web サイトのアドレスを入力してください。
一般的なコマンドのまとめ
注文 | 効果 |
---|---|
pm2 start app.js |
フォークモードを開始する |
pm2 start app.js -i num |
クラスターモードを開始する |
pm2 restart app.js |
アプリケーションを再起動します |
pm2 restart all |
すべてのアプリを再起動する |
pm2 stop app.js |
プロジェクトを停止する |
pm2 stop all |
すべてのアイテムを停止する |
pm2 delete app.js |
プロジェクトプロセスの削除 |
pm2 delete all |
すべてのプロジェクトプロセスを削除します |
pm2 kill |
すべてのプロジェクトプロセスを強制終了します |
pm2 logs |
すべての pm2 ログを表示 |
pm2 flush |
すべての pm2 ログをクリアする |
pm2 start app.js -i 0 --log-type=json |
ログをjson形式で記録する |
pm2 start app.js -i 3 --log-type=json --merge-logs --output /path/xxx.log --error /path/xxx.log |
ログをjson形式で記録してマージする |