首页/系统/Linux 运维命令速查/服务 Restart 策略与自愈
systemd 与服务42 条

服务 Restart 策略与自愈

Restart=on-failure + RestartSec 实现崩溃自愈;但要配合 StartLimit 防大崩循环,看门狗类服务用 Type=notify。

Linux 运维命令速查系统更新于 2026-10-12
用途配置服务崩溃自动拉起策略
语法Restart= / RestartSec= / StartLimit*
所属systemd

策略示例

策略示例
[Service]
Restart=on-failure
RestartSec=5
# [Unit] 段限制狂暴循环
StartLimitIntervalSec=60
StartLimitBurst=5

观察重启

观察重启
systemctl show myapp -p NRestarts,Restart,RestartUSec
journalctl -u myapp | grep -i 'Scheduled restart' | tail
always 适合必须常驻的服务;on-failure 对退出码 0 的正常结束不重启,按服务语义选。

易错点

  • Restart=always + 快速失败循环会刷爆日志并拖高负载:必须设 StartLimit 与退避
  • 配置错误导致的启动失败被当成普通崩溃反复拉起,先修配置再看自愈效果

数据来源与参考

  • man 5 systemd.service(Restart 取值)
  • man 5 systemd.unit(StartLimit*)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌