在某次由於SRE升級域名問題,致使了Node服務器代碼死循環了,產生的504(Gateway timeout)錯誤。
登陸到機器上看,正在用pm2查問題的緣由中,忽然發現錯誤從504變成的502。
也就是Node服務完全掛掉了,準備用PM2重啓服務,發現PM2沒法啓動。
執行任何PM2命令都提示如下信息:服務器
$ pm2 list [PM2] Spawning PM2 daemon with pm2_home=/home/sankuai/.pm2
後經查,發現機器的磁盤空間被佔滿。猜想由於是Node服務由於死循環而日誌把機器的磁盤給打滿了,致使了PM2的守護進程沒法啓動。app
$ df -hl Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 24G 16M 100% / tmpfs 937M 0 937M 0% /dev/shm /dev/vdc1 99G 1.3G 93G 2% /opt
遂進入PM2的默認log日誌目錄,發現果真如此:rest
$ ll total 20662092 -rw-rw-r-- 1 sankuai sankuai 20652240896 Jun 30 11:28 boot-error-0.log -rw-rw-r-- 1 sankuai sankuai 505733120 Jun 30 11:28 boot-out-0.log
刪除日誌文件:日誌
$ rm boot-error-0.log $ rm boot-out-0.log
再次查看磁盤空間:恢復正常code
$ df -hl Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 3.7G 20G 16% / tmpfs 937M 0 937M 0% /dev/shm /dev/vdc1 99G 1.3G 93G 2% /opt
再次啓動PM2,PM2恢復正常:進程
$ pm2 list ┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬─────────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │ ├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼─────────────┼──────────┤ │ boot │ 0 │ fork │ 4014 │ online │ 0 │ 14m │ 0% │ 1001.9 MB │ disabled │ └──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴─────────────┴──────────┘ Use `pm2 show <id|name>` to get more details about an app