终极免费音乐播放器:LX Music桌面版完整使用指南
2026/6/2 15:59:03
痛点 (The Problem):
你给服务设置了Restart=always,但程序有 Bug,启动后 1 秒即崩。
后果:Systemd 陷入死循环(重启风暴),CPU 飙升 100%,日志塞满磁盘,甚至导致无法 SSH 登录。
解法 (The Solution):
不要无脑重启。限制频率,并在彻底失败后触发备用方案。
StartLimitIntervalSec: 时间窗口 (例如 10秒)。StartLimitBurst: 允许崩溃的最大次数 (例如 3次)。OnFailure: 当达到限制后,Systemd 放弃重启,转而启动的服务。/etc/systemd/system/unstable-app.service
[Unit] Description=My Buggy App # 【规则】如果在 10秒 内崩溃超过 3次... StartLimitIntervalSec=10 StartLimitBurst=3 # 【动作】彻底停止尝试,并启动下面这个服务: OnFailure=safe-mode.service [Service] # 模拟崩溃 (1秒后退出) ExecStart=/bin/bash -c "sleep 1 && exit 1" Restart=always RestartSec=1/etc/systemd/system/safe-mode.service
[Unit] Description=Safe Mode Alert [Service] Type=oneshot # SE 的自救动作:点亮红灯、发短信报警、或者回滚分区 ExecStart=/bin/echo "CRITICAL: 检测到重启风暴,已进入安全模式!"unstable-app启动 ->崩溃。unstable-app。safe-mode.service。SE 经验总结:
永远不要只写Restart=always而不加StartLimit。
这是“偶尔故障”和“设备变砖”之间的区别。