※Ghost v2系になってからsystemdを使用しなくてもコマンドで管理できるようになりましたので、この記事は過去の遺産となりましたw
前提条件
- Node.jsホスティングサービスなど、root権限を使えない環境で利用
- PM2管理している
準備
PM2で管理しているGhostをGhost-CLIでUpdateする場合、
config.production.json
を編集しておく必要があります。
"process": "systemd",
とある箇所を削除しておきましょう。
削除した上で実行しないと更新できません!
更新
$ pm2 stop ghost
[PM2] Applying action stopProcessId on app [ghost](ids: 0)
[PM2] [ghost](0) ✓
┌──────────┬────┬──────┬─────┬─────────┬─────────┬────────┬─────┬────────┬───────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼──────┼─────┼─────────┼─────────┼────────┼─────┼────────┼───────┼──────────┤
│ ghost │ 0 │ fork │ 0 │ stopped │ 19 │ 0 │ 0% │ 0 B │ ***** │ disabled │
└──────────┴────┴──────┴─────┴─────────┴─────────┴────────┴─────┴────────┴───────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
$ ghost update
✔ Checking system Node.js version
ℹ Ensuring user is not logged in as ghost user [skipped]
ℹ Checking if logged in user is directory owner [skipped]
✔ Checking current folder permissions
✔ Checking memory availability
✔ Checking for available migrations
✔ Checking for latest Ghost version
✔ Downloading and updating Ghost to v1.24.7
✔ Linking latest Ghost and recording versions
✔ Running database migrations
ℹ Ensuring user is not logged in as ghost user [skipped]
ℹ Checking if logged in user is directory owner [skipped]
✔ Checking current folder permissions
☱ Restarting Ghos✔ Validating config
✔ Restarting Ghost
ℹ Removing old Ghost versions [skipped]
ghost update 15.42s user 4.19s system 21% cpu 1:32.24 total
$ pm2 start ghost
[PM2] Applying action restartProcessId on app [ghost](ids: 0)
[PM2] [ghost](0) ✓
[PM2] Process successfully started
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬───────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼───────┼──────────┤
│ ghost │ 0 │ fork │ 31559 │ online │ 19 │ 0s │ 83% │ 28.1 MB │ ***** │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴───────┴──────────┘
実際にsystemdを利用して管理をしている方が大半だと思いますが、
Node.jsでホスティングしているサービス上で利用する場合や、root権限持たせたくない人等、systemdが利用できないorしない、そういう稀有な方向け兼、個人的メモですw