页首Html代码

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 │ 014m    │ 0%1001.9 MB   │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴─────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
posted @   沧海月明FE  阅读(10048)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示