diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md index 30ffbc4..a368ec5 100644 --- a/docs/DEPLOY.md +++ b/docs/DEPLOY.md @@ -78,9 +78,14 @@ standalone の既定ポート 3000 は同居する別アプリ(`30sec`)が ```bash # 実効値の確認(これが唯一の真実) -ssh "tr '\0' '\n' < /proc/\$(pgrep -f 'toolify.*server.js')/environ | grep -E 'PORT|HOSTNAME|NODE_OPTIONS'" +# pid は pm2 に聞く。pgrep -f は ssh で送った自分のコマンド文字列に先当たりし、 +# 無関係プロセスの environ を読んで誤答(heap=300 等)を返す。 +ssh "PID=\$(pm2 jlist | python3 -c 'import sys,json; print([p[\"pid\"] for p in json.load(sys.stdin) if p[\"name\"]==\"toolify\"][0])') && tr '\0' '\n' < /proc/\$PID/environ | grep -E 'PORT|HOSTNAME|NODE_OPTIONS'" ``` +`pm2 jlist` は JSON を 1 行で返すので、`pid` を綴りでなくキーで取り出せる。 +`pm2 pid toolify` でも取れるが、クラスタ時に複数行になる点に注意。 + ### (6) デプロイ「成功」は本番の生存を意味しない 上記いずれの場合も、ビルド・型・テスト・rsync・`pm2 reload` はすべて success になり、