アプリケーションの状態管理
PM2を使用すると、バックグラウンドでアプリケーションを簡単に起動/再起動/リロード/停止/リストできます。
起動
アプリケーションを起動するには
$ pm2 start api.js
bashコマンド、スクリプト、バイナリなど、あらゆる種類のアプリケーションを起動することもできます。
$ pm2 start "npm run start"
$ pm2 start "ls -la"
$ pm2 start app.py
起動してログストリームを表示する
--attach
オプションを使用して、アプリを起動してログストリームを確認します。
$ pm2 start api.js --attach
Ctrl-Cで終了しても、アプリはバックグラウンドで実行され続けます。
引数の受け渡し
--
の後に受け渡されたすべてのオプションはargとしてアプリに受け渡されます。
$ pm2 start api.js -- arg1 arg2
設定ファイル
同時に複数のアプリケーションを管理するか、複数のオプションを指定する必要がある場合は、設定ファイルを使用できます。このecosystem.config.jsファイルを使用した例です。
module.exports = {
apps : [{
name : "limit worker",
script : "./worker.js",
args : "limit"
},{
name : "rotate worker",
script : "./worker.js",
args : "rotate"
}]
}
次に、両方のアプリを起動します。
$ pm2 start ecosystem.config.js
設定ファイルの詳細についてはこちらを参照してください。
再起動
アプリケーションを再起動するには
$ pm2 restart api
すべてのアプリケーションを再起動するには
$ pm2 restart all
同時に複数のアプリを再起動するには
$ pm2 restart app1 app3 app4
環境変数とオプションの更新
環境変数またはPM2オプションを更新するには、--update-env
CLIオプションを指定します。
$ NODE_ENV=production pm2 restart web-interface --update-env
停止
指定したアプリケーションを停止するには
$ pm2 stop api
$ pm2 stop [process_id]
すべて停止するには
$ pm2 stop all
同時に複数のアプリを停止するには
$ pm2 stop app1 app3 app4
注:これはPM2アプリケーションリストからアプリケーションを削除しません。アプリケーションを削除するには、次のセクションを参照してください。
削除
アプリケーションを停止して削除するには
$ pm2 delete api
すべて削除するには
$ pm2 delete all
アプリケーションのリスト
実行中のすべてのアプリケーションをリストするには
$ pm2 list
# Or
$ pm2 [list|ls|l|status]
アプリケーションをリストする順序を指定するには
$ pm2 list --sort name:desc
# Or
$ pm2 list --sort [name|id|pid|memory|cpu|status|uptime][:asc|desc]
ターミナルダッシュボード
PM2は、アプリケーションのリソース使用状況を監視する簡単な方法を提供します。メモリとCPUは、ターミナルからすぐに簡単に監視できます。
pm2 monit

アプリケーションのメタデータの表示
アプリケーションに関するメタデータを表示するには
$ pm2 show api
再起動回数のリセット
再起動カウンタをリセットするには
$ pm2 reset all