如何配置Systemd服务在故障时仅自动重启一次?
Systemd 服务仅故障自动重启1次的配置调整方法
核心问题原因
你当前配置持续重启的核心原因是 StartLimitIntervalSec=3 和 RestartSec=3 数值相等:首次启动失败后需要等待3秒才会触发重启,此时刚好超出3秒的计数窗口,重启的启动动作会被计入新的时间窗口,永远不会触发启动次数上限限制,因此会无限重启。
调整方案
按照以下规则修改配置即可实现需求:
- 把
StartLimitIntervalSec调整为大于RestartSec的值,确保初始启动和后续的1次重启都落在同一个计数窗口内 - 把
StartLimitBurst设为2,对应「1次初始启动 + 1次故障自动重启」的总启动次数上限
完整可用配置
[Unit] Description=Do job on boot AllowIsolate=yes StartLimitBurst=2 StartLimitIntervalSec=10 [Service] User=root Type=idle ExecStart=/usr/bin/python3 /var/www/flask/initJobs.py Restart=on-failure RestartSec=3 [Install] WantedBy=multi-user.target
生效与验证
- 配置修改完成后执行命令重载systemd配置:
systemctl daemon-reload - 重启服务测试效果,可通过日志查看启动状态:
journalctl -u 你的服务名称.service -f - 如果需要重置服务的失败计数,执行命令:
systemctl reset-failed 你的服务名称.service
内容的提问来源于stack exchange,提问作者Zorro
相关产品推荐
相关产品推荐

