-g オプションをつけてグローバルにインストールします
npm install pm2@latest -g
バージョンを確認します
pm2 --version
5.3.0
npm run start コマンドを pm2 から実行します。
cd <nextjsアプリのディレクトリ >
pm2 start --name "my-next-app" npm -- start
npm run start :staging コマンドといった任意のコマンドを pm2 から実行する場合はこちら。
pm2 start --name "my-next-app" npm -- run start:staging
pm2 init simple
pm2 init
ecosystem.config.js が自動生成されますので編集します。
module.exports = {
apps: [
{
name: 'NextAppName',
exec_mode: 'cluster',
instances: 'max',
script: 'node_modules/next/dist/bin/next',
args: 'start',
env_local: {
APP_ENV: 'local' // APP_ENV=local
},
env_dev: {
APP_ENV: 'dev' // APP_ENV=dev
},
env_prod: {
APP_ENV: 'prod' // APP_ENV=prod
}
}
]
}
設定ファイルの書き方 : https://pm2.keymetrics.io/docs/usage/application-declaration/
以下のコマンドでプロセスを起動します
pm2 start ecosystem.config.js
プロセスの状態を見る(簡易)
pm2 ls
プロセスの状態を見る(詳細)
pm2 ls -m
「nextjs」という名前のアプリを停止する
pm2 stop nextjs
「nextjs」という名前のアプリをプロセスリストから削除する
pm2 delete nextjs
「nextjs」という名前のアプリのプロセス返す(クラスターにて複数プロセスが立ち上がっている場合は全てのプロセス ID を返す)
pm2 pid nextjs
「nextjs」という名前のアプリをリスタートする
reload を使用するとゼロダウンタイムでリスタートしようとします。(必ずそうなるわけではありませんが。こちらのコマンドがおすすめです)
pm2 reload app_name
restart コマンドはreloadよりダウンタイムが発生しやすいコマンドです。
pm2 restart app_name
pm2 を自動起動させる( centos )
pm2 startup
実行後に表示されるコマンドをルート権限(または sudo できるユーザー)から実行します
pm2 を自動起動させる
pm2 save
https://pm2.keymetrics.io/docs/usage/signals-clean-restart/
https://pm2.keymetrics.io/docs/usage/cluster-mode/
module.exports = {
apps : [{
script : "api.js",
// クラスター化
exec_mode : "cluster" ,
instances : "max",
}]
}
参考: https://kazuhira-r.hatenablog.com/entry/2022/01/02/151132
pm2-logrotate のインストール
pm2 install pm2-logrotate
pm2-logrotate の設定表示
pm2 get pm2-logrotate