news 2026/9/22 23:24:25

systemd-resolved.service实验实战3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
这是“偶尔故障”和“设备变砖”之间的区别。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 11:45:32

【项目实战】Vercel 是一个让你的网站“瞬间上线”的云平台。Vercel 现在确实是技术圈的“当红炸子鸡”,尤其是在个人博客和前端开发领域。

Vercel 现在确实是技术圈的“当红炸子鸡”,尤其是在个人博客和前端开发领域。简单来说,Vercel 是一个让你的网站“瞬间上线”的云平台。 传统的服务器 (阿里云/腾讯云) 就像是给你一块生肉和一套厨具。你想吃牛排,得自己切、自己腌、自己煎,还要负责洗碗(运维、配置环境、…

作者头像 李华
网站建设 2026/9/23 12:31:58

Day28~实现strlen、strcpy、strncpy、strcat、strncat

实现strlen、strcpy、strncpy、strcat、strncat#include <stdio.h>size_t my_strlen(const char *src) {size_t len 0;while (*src ! \0){len;src;}return len; }char *my_strcpy(char *dest, const char *src) {if (dest NULL || src NULL) // 判断输入的字符是否为空…

作者头像 李华
网站建设 2026/9/22 10:06:44

空洞骑士模组管理大师课:5个关键技巧让Scarab成为你的游戏管家

你是否曾经因为模组冲突而无法正常游戏&#xff1f;或者因为手动安装模组耗费了大量时间&#xff1f;Scarab作为一款专为空洞骑士设计的模组管理工具&#xff0c;正是你需要的解决方案。这款基于Avalonia框架开发的开源工具&#xff0c;让模组安装、更新和卸载变得前所未有的简…

作者头像 李华
网站建设 2026/9/23 3:50:17

实用方法:轻松实现NCM文件格式转换的完整解析

实用方法&#xff1a;轻松实现NCM文件格式转换的完整解析 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter NCMconverter是一款高效便捷的开源工具&#xff0c;专门用于将网易云音…

作者头像 李华
网站建设 2026/9/23 2:48:24

C++课后习题训练记录Day49

1.练习项目&#xff1a; 输入描述 第一行是一个整数 M&#xff08;1≤M≤1000&#xff09;&#xff0c;表示一共有 M 次操作。 第二行到第 M1 行输入操作&#xff0c;格式如下&#xff1a; IN name VOUT VIN name NOUT N 输出描述 输出 M 次操作后 VIP 窗口队列和普通窗口…

作者头像 李华
网站建设 2026/9/22 2:41:50

LeetCode 189. 旋转数组 | 三步反转最优解全拆解

「旋转数组」核心考察数组操作技巧与空间复杂度优化思路。这道题看似简单&#xff0c;却能延伸出多种解题方法&#xff0c;从暴力模拟到极致的空间优化&#xff0c;层层递进的思路能帮我们理解算法设计的核心 —— 用最少的资源解决问题。实际开发中&#xff0c;类似 循环数组操…

作者头像 李华