PM2 とは?
PM2は、Node.js を本番環境で起動するためツールで、プロセスをデーモン化したり、アプリの起動を管理することができます。
PM2は、Node.js を本番環境で起動するためツールで、プロセスをデーモン化したり、アプリの起動を管理することができます。
sudo npm install -g pm2
アプリケーションのルートディレクトリに移動して、次のコマンドを実行します。
pm2 start npm --name myapp
--name オプションをつけると、起動するアプリに任意の名前をつけることができます。
pm2 list
# プロセスidを指定
pm2 stop 0
# 全てのプロセスを停止
pm2 stop all
# プロセスidを指定
pm2 restart 0
# 全てのプロセスを再起動
pm2 restart all
アプリケーションを削除するには、以下のようにします。
# プロセスidを指定
pm2 delete 0
pm2 logs
# 行数指定
pm2 --lines 100
# すべてのログをクリア
pm2 flush
console.log()の出力はログファイルに出力されます。
アプリのルートディレクトリに移動して、次のコマンドを入力
pm2 start ./bin/www --name myapp
アプリのルートディレクトリに設定ファイルを保存します。ここでは「 pm2myapp.json 」というファイル名にしています。
「 bin/www 」がサーバー起動用のファイルになります。
// pm2myapp.json
{
"name": "myapp",
"script": "./bin/www",
"env_development": {
"NODE_ENV": "development"
},
"env_production": {
"NODE_ENV": "production"
}
}
コマンドから利用する環境変数を参照します。
# envを指定しない場合には、設定ファイル内のenvが利用されます。
pm2 start pm2myapp.json
# --envオプションの指定方法は、env_xxx の「 xxx 」の部分を指定します。「 env_production 」を利用したい場合は、以下のようにします。
pm2 start pm2myapp.json --env production
環境変数を利用するには、「 process.env.NODE_ENV 」とすれば利用できます。
まず、pm2 を使い Express アプリケーションを起動した状態にして、次のコマンドを実行します。
pm2 startup
上記のコマンド実行後、「 sudo env 」から始まるコマンドが表示されるので、そのコマンドを実行します。
サーバーを再起動して、アプリケーションが起動しているか確認します。