PM2 watch 沒作用
PM2 nodejs linux -echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Why
當使用 PM2
而發現 watch 無法正常工作時,可以使用 pm2 report
檢查一下錯誤訊息。
pm2 report
可以看到目前的設定與 log
。你也可以使用 cat ~/.pm2/pm2.log
直接看 log
檔。如果在 log
中有看 ENOSPC
錯誤。
大概像下面這樣
~/.pm2/pm2.log
PM2 | 2019-05-17T02:48:25: PM2 error: Error: watch /you/watch/path/file ENOSPC PM2 | at _errnoException (util.js:992:11) PM2 | at FSWatcher.start (fs.js:1382:19) PM2 | at Object.fs.watch (fs.js:1408:11)
這可能是因為 inotify
這個 process
監看太多文件。設定一個較大的 max_user_watches
值,可以解決問題。
How
使用
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
再重啟 pm2 restart <your-app-name>
後, 使用 touch <your-watch-file>
變動檔案試試看。
pm2 ls
時 <your-app-name> 的 restart
值應該就會遞增了。