#1466 | 2026-11-15 01:34:15

今天才知道pm2有个坑,它的pm2-root依赖libc,当apt 自动更新libc依赖后,会触发needrestart

apt Post-Invoke hook 调用 needrestart(-m u,Ubuntu 模式,restart mode 默认 a 自动重启),批量重启 18 个服务,包含 pm2-root.service

libc 升级本身不会重启任何进程。链条是:

apt-daily-upgrade.timer (每日)
  └─ unattended-upgrades 升级 libc6
       └─ /etc/apt/apt.conf.d/99needrestart 的 DPkg::Post-Invoke
            └─ /usr/lib/needrestart/apt-pinvoke -m u
                 └─ needrestart 检测到守护进程仍映射已删除的旧 libc
                      └─ restart mode = 'a'(APT hook 下 Ubuntu 默认自动重启)
                           └─ systemctl restart pm2-root.service
                                └─ ExecStop=pm2 kill → 所有 app 一起被停

之后 pm2 daemon 用 `pm2 resurrect` 恢复进程,但恢复的是上次`pm2 save`的进程,如果你后来用更新了pm2守护的进程却没有save,那就不会随之重启了……