PM2如何在不停止当前进程的前提下重置清理无用的id序号
PM2 无中断清理闲置ID序号解决方案
PM2 默认分配ID时读取内部维护的last_id计数器,而非基于当前运行实例的最大ID计算,因此删除旧实例后会出现ID跳号的情况,可通过以下两种不中断现有运行实例、不终止主进程的方案解决:
方案一:官方推荐平滑重载方案(无风险优先选择)
- 第一步:备份当前运行实例状态,操作不会影响实例运行
pm2 save - 第二步:平滑重载PM2主进程,该操作会重启PM2主进程但完全不中断正在运行的业务实例,重载后主进程会自动重新读取当前运行实例的ID序列,重置
last_id为当前最大实例IDpm2 update - 验证:操作完成后启动测试实例,新分配ID应为当前最大运行实例ID+1,验证完成后可删除测试实例。
方案二:手动修改计数器配置
如果不便执行PM2主进程重载,可直接修改内部计数器配置实现:
- 第一步:同样先执行
pm2 save备份当前运行状态 - 第二步:进入PM2默认工作目录
~/.pm2/,备份status.json文件后打开该文件,找到last_id字段,将其值修改为当前运行实例的最大ID值(如当前仅运行0、1号实例,就改为1) - 第三步:保存修改后的文件,后续启动新实例时就会从修改后的
last_id+1开始分配ID
注意:手动修改配置前务必做好文件备份,避免修改错误导致PM2状态异常。
内容的提问来源于stack exchange,提问作者CyberEternal
相关产品推荐
相关产品推荐

