当前位置: 首页 > 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.rkmt.cn/news/89734.html

相关文章:

  • 哔哩下载姬:5个实用技巧让你的B站视频下载效率翻倍
  • SAM3在医疗影像里“指鹿为马”?MedSAM3来了——文本一句话,精准分割病灶
  • Java毕设项目:基于SpringBoot网上超市的设计与实现基于springboot超市在线销售系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • Java 大视界 -- Java 大数据在智能教育学习成果评估体系完善与教育质量提升中的深度应用(434)
  • 基于SpringBoot + Vue的企业培训与绩效评估系统
  • 每个神经元负责提取不同特征?还是每层神经元负责提取不同特征?
  • WPS Office镜像大全
  • 基于SpringBoot + Vue的养老院管理系统
  • ViGEmBus虚拟游戏控制器驱动:从入门到精通的完整指南 [特殊字符]
  • 终极指南:快速掌握Scarab空洞骑士模组管理神器
  • c语言学习笔记
  • 激活函数应该具有哪些特征
  • 【智能制造典型场景参考指引(2025 年版)解读】 -产品研发环节
  • Windows右键菜单优化全攻略:告别卡顿的3大诊断与4步修复方案
  • 百度网盘高速下载工具使用手册:告别蜗牛速度的秘诀
  • 空洞骑士模组管理大师课:5个关键技巧让Scarab成为你的游戏管家
  • LeetCode 面试经典150题之合并两个有序数组
  • NCM文件转换神器:NCMconverter完全使用指南
  • Openresty基础知识详解:轻松驾驭高性能web网关
  • Flutter 设计系统构建指南
  • 代码生成效率革命:DeepSeek智能编码工具实战指南与技术解析
  • 面向对象编程学习笔记:从类、对象到方法调用的完整回顾
  • 大模型落地加速:15+15+8精选资源清单助力开发者攻克技术难关
  • 完整教程:YOLOv3 深度解析:目标检测领域的经典革新
  • 百度网盘下载工具终极指南:快速突破限速的完整教程
  • C语言实现幂级数(附带源码)
  • JavaScript 全局对象 `globalThis` 的多环境统一:各引擎在实现跨环境引用时的设计权衡
  • 计算机科学与技术
  • MiniCPM-Llama3-V 2.5震撼发布:重新定义多模态大模型性能边界
  • 视频生成效率革命:LightX2V团队发布LightVAE/TAE系列优化模型,平衡画质、速度与显存