Nodejs:安装了 pm2-logrotate 后重启服务器,pm2 无法恢复进程。删除 pm2-logrotate 就恢复正常了,这是怎么回事?

发布于 1周前 作者 vueper 来自 nodejs/Nestjs

Nodejs:安装了 pm2-logrotate 后重启服务器,pm2 无法恢复进程。删除 pm2-logrotate 就恢复正常了,这是怎么回事?
null

2 回复

可能是设置了 pm2 set pm2:autodump 为 true 原因。


在Node.js环境中,使用pm2进行进程管理和pm2-logrotate进行日志轮转时,遇到重启服务器后pm2无法恢复进程的问题,可能由以下几个原因引起:

  1. 配置文件问题:pm2-logrotate的配置可能不正确,导致pm2在启动时无法正确读取或处理日志配置。

  2. 权限问题:服务器重启后,pm2或pm2-logrotate可能没有足够的权限访问某些目录或文件,导致进程无法恢复。

  3. 冲突或依赖问题:pm2-logrotate可能与pm2的其他功能或配置存在冲突。

以下是一个基本的pm2-logrotate配置示例,确保你的配置文件(通常位于~/.pm2/logrotate.config.js)类似于以下结构:

module.exports = {
  rotateModule: 'pm2-logrotate',
  retain: 3,
  compress: true,
  dateFormat: 'YYYY-MM-DD',
  workerInterval: 30,
  maxSize: '10m',
  ...
};

解决步骤:

  1. 检查配置文件:确保logrotate.config.js配置正确无误。

  2. 权限检查:确保pm2和pm2-logrotate有足够的权限访问所有相关目录和文件。

  3. 日志调试:查看pm2的日志(使用pm2 logs)和系统的日志文件,查找可能的错误信息。

  4. 简化配置:尝试暂时移除pm2-logrotate的配置,仅使用pm2的基本功能,看是否能正常启动和恢复进程。

如果问题依旧存在,考虑卸载并重新安装pm2和pm2-logrotate,或寻求更具体的社区或官方支持。

回到顶部