# 2026-09-05 systemd 审计添加的 drop-in(原单元文件未改动)。 # # 为什么加:本机的重启限速器其实是死代码。 # StartLimitBurst=5 + StartLimitIntervalUSec=10s 的含义是「10 秒内启动 5 次 # 就放弃」,但这些单元的 RestartSec 都在 2~10s 之间 —— 5 次重启必然跨过 # 10 秒,计数器每次都在触发前清零。于是一个永久坏掉的服务会以固定频率 # 无限重试,systemd 从头到尾不会说一句话。 # # 实测后果(2026-09-05 07:54–09:13):llmsproxy 因为 config.yaml 里 headers # 键重复而无法解析、退出码 1,systemd 每 5 秒拉一次,连拉 79 分钟 —— # 836 次重启,占掉本次启动 986 条 "Failed with result" 里的 901 条, # 而 "start request repeated too quickly" 一次都没出现过。 # # 怎么修:改成指数退避。重试间隔从该单元自己的 RestartSec 出发,经 RestartSteps # 级递增到 RestartMaxDelaySec,崩溃循环会衰减到每 5 分钟一次。服务不会被放弃 # (病根修好后它仍会自己回来),日志也不再被刷爆。 # # 故意不动的东西:StartLimitBurst / StartLimitIntervalUSec。收紧它们会让故障单元 # 进入终态 failed、必须人工 systemctl reset-failed 才能复活 —— 这正好和这些 # 长驻 agent 依赖的自愈行为相反。 [Service] RestartSteps=6 RestartMaxDelaySec=5min