【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 │ └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
ログの出力先を監視対象外のフォルダに移動させて解決しました
以上です