From c5bfd331e9fc13a9d7b0d601b75d3c5905f58149 Mon Sep 17 00:00:00 2001 From: appdevelopsk Date: Fri, 18 Sep 2026 10:10:04 +0900 Subject: [PATCH] =?UTF-8?q?docs(ops):=20=E5=AE=9F=E5=8A=B9env=E7=A2=BA?= =?UTF-8?q?=E8=AA=8D=E3=81=AE=20pid=20=E5=8F=96=E5=BE=97=E3=82=92=20pgrep?= =?UTF-8?q?=20=E3=81=8B=E3=82=89=20pm2=20jlist=20=E3=81=B8=E6=98=AF?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pgrep -f 'toolify.*server.js' は ssh で送った自分のコマンド文字列に 先当たりし、無関係プロセス(bash -c ...)の environ を読んで NODE_OPTIONS=300 という誤答を返していた。VPS 上で再現確認済み (pgrep が返すのは自分自身の pid のみ、本体 3950723 は含まれない)。 pm2 jlist の JSON から name=="toolify" の pid をキーで取り出す方式に変更。 実測で PORT=8500 / HOSTNAME=toolify365.com / heap=400 を正しく返すことを確認。 Claude-Session: https://claude.ai/code/session_01ENHPNZ5ngcdrTHJ2H6oAFd --- docs/DEPLOY.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 になり、