読者です 読者をやめる 読者になる 読者になる

【node.js】pm2でexpressが意図せず再起動していたときの原因

今回、ちょっと迷った内容は以下
(1)expressを使ったサーバー起動
(2)urlを叩いてみる
(3)(2)のレスポンスは返ってくるけど、サーバーが再起動される

サーバー起動

./node_modules/pm2/bin/pm2 start app.js --watch

urlを叩いてみる

curl http://example.com:3000/test -X POST -d "id=1"

ログに以下が出て再起動される

PM2 Change detected on path log/access.log for app app - restarting
PM2 Stopping app:app id:0
PM2 App [app] with id [0] and pid [23467], exited with code [0] via signal [SIGINT]
PM2 Starting execution sequence in -fork mode- for app name:app id:0
PM2 App name:app id:0 online

原因

logも監視対象になっていたたため、アクセスするたびに再起動してしまったというだけでした・・・

# ./node_modules/pm2/bin/pm2 list
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ app      │ 0  │ fork │ 23481 │ online │ 1       │ 9m     │ 43.238 MB   │  enabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘


ログの出力先を監視対象外のフォルダに移動させて解決しました

以上です