You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 8上PM2每90秒被杀死重启问题求助

解决CentOS 8上PM2每90秒被强制重启的问题

我处理过不少CentOS 8环境下PM2异常重启的案例,结合你描述的情况——空状态下PM2仍会被周期性杀死,大概率是系统内存回收机制(OOM Killer)、systemd配置冲突或者SELinux限制导致的,咱们一步步排查解决:

1. 先确认是不是OOM Killer在搞鬼

90秒的周期很符合内存不足时系统自动清理进程的规律,先查日志验证:

# 查看内核OOM日志
dmesg | grep -i oom
# 或者查看systemd-oomd的日志
journalctl -u systemd-oomd.service --since "10 minutes ago"

如果日志里出现pm2相关的killed process记录,说明系统内存不足触发了自动清理。解决办法:

  • 给服务器加内存(最直接);
  • 调整PM2的内存限制,在PM2配置文件里添加:
    module.exports = {
      apps: [{
        name: "your-app",
        max_memory_restart: "200M" // 根据实际情况设置,避免单个进程占用过多内存
      }]
    };
    
    然后用pm2 reload ecosystem.config.js加载配置。

2. 检查并修复PM2的systemd配置文件

PM2通过pm2 startup生成的systemd服务文件可能存在不合理的限制,路径一般是/etc/systemd/system/pm2-root.service(以root用户为例):

  1. 打开这个文件,找到[Service]段,检查是否有过低的内存限制:
    # 如果你看到类似下面的配置,注释掉或者调整为合理值
    # MemoryMax=100M
    # MemoryHigh=80M
    
    可以直接设置为不限制:
    MemoryMax=infinity
    MemoryHigh=infinity
    
  2. 同时调整重启策略,避免不必要的循环重启:
    Restart=on-failure
    RestartSec=5
    
  3. 保存后重新加载systemd配置并重启PM2服务:
    systemctl daemon-reload
    systemctl restart pm2-root
    

3. 排查SELinux限制

CentOS 8默认开启SELinux,可能会阻止PM2的正常运行:

  1. 先临时关闭SELinux测试:
    setenforce 0
    
    等待90秒,如果PM2不再被杀死,说明是SELinux的问题。
  2. 给PM2添加SELinux规则,永久解决:
    # 设置PM2二进制文件的SELinux上下文
    semanage fcontext -a -t bin_t /usr/local/bin/pm2
    # 应用上下文设置
    restorecon -v /usr/local/bin/pm2
    
  3. 重新开启SELinux:
    setenforce 1
    

4. 切换回cgroup v1(针对旧版PM2)

CentOS 8默认使用cgroup v2,而部分旧版本PM2(比如你试过的v3.5.0)对cgroup v2的支持不完善:

  1. 编辑/etc/default/grub文件,在GRUB_CMDLINE_LINUX后添加参数:
    GRUB_CMDLINE_LINUX="... systemd.unified_cgroup_hierarchy=0"
    
  2. 重新生成grub配置:
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
  3. 重启系统后测试PM2是否正常。

最后验证

完成上述操作后,重启系统,然后用pm2 status查看状态,等待几分钟后再检查journalctl -u pm2-root.service日志,确认没有再出现pm2 has been killed by signal的提示。

内容的提问来源于stack exchange,提问作者Alex Laz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 13:07:48