前提条件

  • 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