Open7

PM2 で動いてるアプリを掘った

hideharahidehara

Node-RED で動作してるフロー?を確認したく、あるVPSの管理者権限をもつことに。

Node-REDって、どやって daemon になるの?とおいかけたら PM2 が使われてるとわかったので、その追いかけメモ

結論から書いちゃうと、公式ドキュメントいいね!ですな

やっぱ公式だな。というか公式揃ってるわ > PM2

hideharahidehara

プロセスツリーを見てみる

ps auxf

node-red 発見!親が PM2 となってる。

PM2なんだろう?がスタート(道のりは遠い)

hideharahidehara

pm2 は Daemon だけども、管理コマンドも提供とのこと

pm2 ls

とりあえず Node-RED が pm2 で動作してることがわかった。

hideharahidehara

ちょっと調べてみたリンク

PM2 使った感じ
http://var.blog.jp/archives/76855751.html

pm2でNode.js実行環境を整備する - Qiita
https://qiita.com/poruruba/items/10df0d94e9127797498f

GitHub - Unitech/pm2: Node.js Production Process Manager with a built-in Load Balancer.
https://github.com/Unitech/pm2

PM2 - Startup Script
https://pm2.keymetrics.io/docs/usage/startup/

【linux】lsコマンドで年が表示されない? at softelメモ
https://www.softel.co.jp/blogs/tech/archives/2994

hideharahidehara

すでに動作してるプロセス の script args を変更したい

※ChatGPTに教えてもらった

動作してるプロセスIDをチェック

pm2 list

プロセス 0 を変更する場合

pm2 stop 0
pm2 start 0 -- -u root

# うまく行ったらRestartに備えて保存
pm2 save

ecosystem.config.js が存在しないプロセスの場合は、上記手順がよろしいかと

hideharahidehara

PM2のバージョンアップ

アラートでるから、あげてみたら・・・Node.jsとのバージョン不一致で動作しなくなった(泣)

# 最新にする
npm install pm2@latest -g

# プロセスを差し替える
pm2 update

古い(or OS同梱の) Node.js を利用してる場合には、事前にサポート範囲を調べてから作業するのが吉ですね

# バージョン指定してアップデート
npm install pm2@4.5.6 -g