PM2報錯‘Spawning PM2 daemon with pm2_home...’的解決方案


問題

在某次因為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的守護進程無法啟動。

$ 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日志目錄,發現果然如此:

$ 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 

再次查看磁盤空間:恢復正常

$ 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM