2020/06/18

Nuxt.jsのアプリをPM2を使ってデーモン化する

nuxtjspm2

概要

supervisordを使って、nuxt.jsのアプリを常駐化していましたが、ややデプロイが不便だったこともあって
見直しました。

どうやら、PM2というのが良さそうだったので使ってみました。

実施事項

インストール

# /usr/local/bin の下(`yarn global bin` 配下)にインストールされます 
$ sudo yarn global add pm2

設定ファイルの記述

  • /home/username/src/your-app/ 配下にNuxt.jsアプリ(package.json等)が配置されているとします。
$ cat <<EOF > /home/username/pm2.config.js
module.exports = {
  apps : [
    {
      name: "your-app-name",
      script: "yarn start",
      cwd : '/home/username/src/your-app/'
    }
  ]
}
EOF

起動

$ cd /home/username
$ sudo pm2 start pm2.config.js

確認

$ sudo pm2 list

以下のようにプロセスの状態が確認できます。

┌─────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1   │ your-app-name │ default     │ N/A     │ fork    │ 1689     │ 32m    │ 0    │ online    │ 0%       │ 48.9mb   │ root     │ disabled │
└─────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

以上になります。