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

linux systemd 服务连续启动失败,不会再重启分析

1. 问题现象

Linux 系统中,将自已写的可执行文件放到 systemd 服务中做成service 服务,以支持开机自启和失败重启。但是发现服务在重启多次失败后再也起不来,服务状态是 failed,并且报 start request repeated too quickly.

在这里插入图片描述

2. 问题排查

2.1 自定义的test 服务脚本

在这里插入图片描述
由于restart 使用的选项是alwayls, 所以按常理服务应该会一直尝试重启,但是实际失败后就没有再重启。

2.2 原因分析

这是由于systemd 通过选项控制,由 StartLimitIntervalSec=StartLimitBurst= 选项 和Restart= 选项限制服务在特定时间内的重启次数。

StartLimitBurst= 默认值为5 ,StartLimitIntervalSec= 的默认值为10,这个可以从systemd的源码中搜索到
在这里插入图片描述

#DefaultStartLimitBurst=5
https://github.com/systemd/systemd/blob/994c7978608a0bd9b317f4f74ff266dd50a3e74e/src/core/system.conf.in#L52
https://github.com/systemd/systemd/blob/994c7978608a0bd9b317f4f74ff266dd50a3e74e/src/core/user.conf.in#L33

这个就与图 1 restart counter is at 5 完全一致。

如果需要修改这个值,可以通过修改 /etc/systemd/system.conf 配置文件

https://serverfault.com/questions/845471/service-start-request-repeated-too-quickly-refusing-to-start-limit

3. 篇外

3.1 systemd restart 的选项

选项作用
no服务不会自动重启
on-success在服务正常退出(退出状态码为 0)时重启
on-failure当服务异常退出(退出状态码非 0)或被信号终止时重启
on-abnormal当服务被信号终止或由于系统异常(如崩溃)退出时重启
always无论服务如何退出(正常或异常),都会自动重启

3.2 systemd

systemd 服务分为 系统级别和用户级别,系统级别的xxx.service/lib/systemd/system/ 中, 用户级别在/usr/lib/systemd/system/

http://www.lryc.cn/news/522460.html

相关文章:

  • 【云岚到家】-day03-门户缓存方案选择
  • 在IDEA中使用通义灵码插件:全面提升开发效率的智能助手
  • 【正则表达式】从0开始学习正则表达式
  • PHP智慧小区物业管理小程序
  • Linux安装Docker教程(详解)
  • 开源AI微调指南:入门级简单训练,初探AI之路
  • Leetcode 91. 解码方法 动态规划
  • ASP .NET Core 学习(.NET9)配置接口访问路由
  • 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(2 换掉付费的Event Hubs)
  • idea 如何安装 github copilot
  • 1.17学习
  • Redis系列之底层数据结构整数集IntSet
  • 外包公司名单一览表(成都)
  • 个人vue3-学习笔记
  • STM32 FreeRTOS消息队列
  • Datawhale-self-llm-Phi-4 Langchain接入教程
  • 窥探QCC518x/308x系列与手机之间的蓝牙HCI记录与分析 - 手机篇
  • Golang Gin系列-1:Gin 框架总体概述
  • CF986 div2 ABCD补题
  • Ubuntu 22.04 上安装和使用 ComfyUI
  • 用户中心项目教程(一)--Ant design pro初始化的学习和使用
  • 分频器code
  • C#中字符串方法
  • Python毕业设计选题:基于django+vue的二手电子设备交易平台设计与开发
  • 【愚公系列】《微信小程序与云开发从入门到实践》059-迷你商城小程序的开发(加入购物车与创建订单功能开发)
  • Mac Android studio :gradle 配置、代理设置、及各种环境变量配置;
  • unity——Preject3——开始界面拼面板
  • 【达梦数据库(Oracle模式)】如何将视图中的数据导出
  • GB44495-2024 汽车整车信息安全技术要求 - V2X部分前置要求
  • FastAPI 应用的容器化与 Docker 部署:提升性能与可扩展性