首页/系统/信创系统运维速查/Restart 重启策略与失败限速
服务与运维65 条

Restart 重启策略与失败限速

关键进程用 Restart=on-failure/always 配合 RestartSec 做崩溃自愈;systemd 对频繁重启有限速(StartLimitBurst/StartLimitIntervalSec),触发后单元停摆需修根因并复位。

信创系统运维速查系统更新于 2026-10-12

单元配置(StartLimit 属 [Unit] 段)

单元配置(StartLimit 属 [Unit] 段)
[Unit]
StartLimitIntervalSec=60
StartLimitBurst=5

[Service]
Restart=on-failure
RestartSec=3

观察与复位

观察与复位
systemctl show myapp -p NRestarts
systemctl status myapp --no-pager | head -12
systemctl reset-failed myapp && systemctl start myapp
自动重启的脚本类服务要有防重入保护(如 flock),否则崩溃-重启循环会放大故障影响。

易错点

  • StartLimit* 在现代 systemd 属于 [Unit] 段;老资料里 [Service] 段的 StartLimitInterval/StartLimitBurst 已弃用,按版本核对
  • 限速触发会掩盖持续崩溃:先看 NRestarts 与 journal 日志定位根因,再 reset-failed 恢复

数据来源与参考

  • man 5 systemd.service(Restart)
  • man 5 systemd.unit(StartLimit)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌