当前位置: 首页 > news >正文

systemd-resolved.service实验实战3

Systemd 设计模式:CrashGuard (防止无限重启)

痛点 (The Problem):
你给服务设置了Restart=always,但程序有 Bug,启动后 1 秒即崩。
后果:Systemd 陷入死循环(重启风暴),CPU 飙升 100%,日志塞满磁盘,甚至导致无法 SSH 登录。

解法 (The Solution):
不要无脑重启。限制频率,并在彻底失败后触发备用方案

1. 核心机制 (背下这 3 个参数)

  • StartLimitIntervalSec: 时间窗口 (例如 10秒)。
  • StartLimitBurst: 允许崩溃的最大次数 (例如 3次)。
  • OnFailure: 当达到限制后,Systemd 放弃重启,转而启动的服务。

2. 实战配置

服务 A:不稳定的主程序 (受害者)

/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
服务 B:安全模式 (救世主)

/etc/systemd/system/safe-mode.service

[Unit] Description=Safe Mode Alert [Service] Type=oneshot # SE 的自救动作:点亮红灯、发短信报警、或者回滚分区 ExecStart=/bin/echo "CRITICAL: 检测到重启风暴,已进入安全模式!"

3. 运行流程 (The Flow)

  1. 启动:unstable-app启动 ->崩溃
  2. 重试 1: Systemd 重启它 ->崩溃
  3. 重试 2: Systemd 重启它 ->崩溃
  4. 触发阈值: Systemd 发现 “10秒内崩了3次”。强制停止unstable-app
  5. 故障转移: Systemd 自动启动safe-mode.service

SE 经验总结:
永远不要只写Restart=always而不加StartLimit
这是“偶尔故障”和“设备变砖”之间的区别。

http://www.cnnetsun.cn/news/27982.html

相关文章:

  • 【项目实战】Vercel 是一个让你的网站“瞬间上线”的云平台。Vercel 现在确实是技术圈的“当红炸子鸡”,尤其是在个人博客和前端开发领域。
  • Day28~实现strlen、strcpy、strncpy、strcat、strncat
  • 空洞骑士模组管理大师课:5个关键技巧让Scarab成为你的游戏管家
  • 实用方法:轻松实现NCM文件格式转换的完整解析
  • C++课后习题训练记录Day49
  • LeetCode 189. 旋转数组 | 三步反转最优解全拆解
  • downkyi视频下载:告别卡顿与画质损失的终极解决方案
  • 教你如何玩转DPDK开发中的KNI与内核交互,让网络速度翻倍!
  • Openresty驱动下的高性能Web网关实战
  • 百度网盘下载工具终极指南:快速突破限速的完整教程
  • C语言实现hashmap(附带源码)
  • jsonnet介绍和使用
  • 喜马拉雅音频数据采集:API接口分析与加密音频链接解密实战
  • 角色影像生成新纪元:Pony V7-Base引领AI创作革命
  • 论文格式修改排名:9大平台+在线一键优化
  • 论文写作效率低?十大AI生成平台,AIGC降重+赶due不熬夜
  • 文献引用规范考核要点解析与实践指南
  • 文献综述写作期末指南:方法、结构与常见问题解析
  • 期末文献研究论文的撰写方法与实践路径探讨
  • 基于 HID 协议的扩展功能指令定义方案
  • 模拟IC设计:集成电路与运算放大器大观
  • 6、Oracle数据库管理:文件与目录操作全解析
  • 12、Oracle数据库Linux服务器软件管理全攻略
  • 某聘新版AST解混淆(青春版)
  • 基于Spring Boot框架和vue的的诗词鉴赏与交流网站的设计与实现_96fdvu1s
  • 基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)
  • 三极管:电子信息时代的核心“控制单元”,藏于设备中的关键器件
  • 1小时打造专属右键菜单工具:快马平台实战
  • 零基础用AI制作第一个Macyy风格网页
  • GG3M业务核心:需求满足与问题解决 | GG3M Business Core: Demand Satisfaction and Problem Solving