PM2 でよく使うコマンドのメモ.
list
$ pm2 list
PM2 を使って管理しているプロセスの一覧がみれる.
show
$ pm2 show $APP_NAME
App Name を指定することで list より詳しい情報がみれる.
┌───────────────────┬──────────────────────────────────────────────────┐ │ status │ online │ │ name │ app │ │ restarts │ 0 │ │ uptime │ 6h │ │ script path │ /home/ubuntu/app/app.js │ │ script args │ N/A │ │ error log path │ /home/ubuntu/.pm2/logs/app-error-0.log │ │ out log path │ /home/ubuntu/.pm2/logs/app-out-0.log │ │ pid path │ /home/ubuntu/.pm2/pids/app-0.pid │ │ interpreter │ node │ │ interpreter args │ N/A │ │ script id │ 0 │ │ exec cwd │ /home/ubuntu/app │ │ exec mode │ fork_mode │ │ node.js version │ 8.9.4 │ │ watch & reload │ ✘ │ │ unstable restarts │ 0 │ │ created at │ 2018-01-30T04:49:08.286Z │ └───────────────────┴──────────────────────────────────────────────────┘
logs
$ pm2 logs $APP_NAME
PM2 はデフォルト設定では $HOME/.pm2/logs/
配下にログが格納される.
logs コマンドを使うと, わざわざ tail したりしなくて良い.
--watch
# pm2 start $APP_NAME --watch
App があるディレクトリ / サブディレクトリのファイルが変更されると
自動的にプロセスを再起動する.
※ --watch での再起動は graceful ではないので注意.
gracefulReload
$ pm2 gracefulReload $APP_NAME
稼働中のプロセスを正常に(処理が終了してから)終了して再読込する.
save
$ pm2 save
PM2 で管理しているプロセスを起動時に立ち上がるように保存する.
/home/$USER/.pm2/dump.pm2
にどんな内容で立ち上げるかが保存される.
内部的には環境に応じた init システムを検出して登録している.
var hash_map = { 'systemctl' : 'systemd', 'update-rc.d': 'upstart', 'chkconfig' : 'systemv', 'rc-update' : 'openrc', 'launchctl' : 'launchd', 'sysrc' : 'rcd' };
調べてもわからなかったこと
$ pm2 start pm2-config.json --env production
↑ で起動した時に, あとから --env
に指定した内容を確認する方法.
質問してみたので, わかりしだい追記予定.