新闻中心

Linux 写一个自动重启服务的脚本

2025-12-05
浏览次数:
返回列表
Linux自动重启服务有两个稳妥方案:一是用cron定时执行systemctl重启脚本,适用于周期性维护;二是用systemd托管的守护脚本定期检测端口或服务状态,异常时自动重启,适用于高可用场景。

linux 写一个自动重启服务的脚本

Linux 上自动重启服务,核心是用 systemctl 控制服务状态,并配合定时任务(cron)或条件检测逻辑实现“自动”。下面提供两个常用、稳妥的方案:一个是简单可靠的定时重启(适合周期性维护),另一个是按需检测+重启(适合服务意*掉的场景)。

方案一:用 cron 定时重启服务(推荐用于计划性维护)

适用于希望每天/每周固定时间重启某服务(比如 nginx、redis、docker 等),避免内存泄漏或连接堆积。

步骤:

  • 写一个重启脚本,例如 /opt/scripts/restart-nginx.sh
#!/bin/bash
# 检查服务是否运行,再执行重启(更安全)
if systemctl is-active --quiet nginx; then
    systemctl restart nginx
    echo "$(date): nginx restarted successfully" >> /var/log/nginx-restart.log
else
    echo "$(date): nginx was not running, starting instead" >> /var/log/nginx-restart.log
    systemctl start nginx
fi
  • 赋予执行权限:chmod +x /opt/scripts/restart-nginx.sh
  • 添加到 crontab(如每天凌晨 4:30 执行):
    crontab -e,加入一行:
30 4 * * * /opt/scripts/restart-nginx.sh

方案二:后台守护式检测并重启(适合关键服务高可用)

适用于不能容忍长时间中断的服务(如数据库、API 后端)。脚本常驻运行,定期检查进程或端口,异常则拉起。

示例:检测 8080 端口是否响应,不响应就重启 myapp.service

发卡宝-卡密寄售系统 发卡宝-卡密寄售系统

发卡宝是一个专业的软件卡密等虚拟商品在线交易平台,拥有多种兑换方式,费率低,结算快,正规企业平台一直稳定运营,24小时不间断提供自动发卡服务。【模板说明】试用版自带一套模板(响应式)【环境支持】PHP环境 / 200M或以上空间大小 / 开启父路径 / 设置index.php为默认首页 / 目录写入权限需要开启【数据库】MySQL【安装步骤】将文件上传至空间目录,运行“http://域名/inst

发卡宝-卡密寄售系统 1 查看详情 发卡宝-卡密寄售系统
#!/bin/bash
SERVICE_NAME="myapp"
CHECK_PORT=8080
<p>while true; do
if ! nc -z 127.0.0.1 $CHECK_PORT 2>/dev/null; then
echo "$(date): Port $CHECK_PORT down, restarting $SERVICE_NAME..."
systemctl restart $SERVICE_NAME
sleep 5  # 避免重启过快失败
fi
sleep 30  # 每30秒检查一次
done

使用建议:

  • 保存为 /opt/scripts/watch-myapp.sh,加执行权限
  • 用 systemd 管理该监控脚本(比直接放后台更可靠):
    新建 /etc/systemd/system/watch-myapp.service
[Unit]
Description=Watch and restart myapp service
After=network.target
<p>[Service]
Type=simple
User=root
ExecStart=/opt/scripts/watch-myapp.sh
Restart=always
RestartSec=10</p><p>[Install]
WantedBy=multi-user.target
  • 启用并启动:systemctl daemon-reload && systemctl enable --now watch-myapp.service

注意事项

避免踩坑的关键点:

  • 脚本中尽量用 systemctl is-active --quietnc/curl 做真实状态判断,别只靠 ps | grep
  • 重启前加日志,方便排查误触发
  • 如果是生产环境,重启前可加锁或健康检查(比如调用服务自身健康接口)
  • 不要在 root 的 crontab 里用 sudo systemctl,直接用 root 权限跑即可

基本上就这些。选方案一还是二,取决于你想要“按时重启”还是“出问题才动”。两者都轻量、可审计、易维护。

以上就是Linux 写一个自动重启服务的脚本的详细内容,更多请关注其它相关文章!


# 编辑器  # 武威网站优化价格表  # 推广网站的效果和意义是什么  # 秦剑seo  # 网站评论结构优化方案怎么写  # 个人网站如何推广宣传  # 保定京东网站推广哪个好  # 奉化网站优化好吗  # 确山新媒体网络推广营销  # 深圳网站建设推广优化  # 六安网站建设公司名录  # 是一个  # 操作步骤  # 试用版  # linux  # 服务管理  # 运行环境  # 适用于  # 重启  # red  # 自动重启  # curl  # 后端  # 端口  # app  # nginx  # docker  # redis 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Python类型检查:优化关联可选属性的Mypy推断策略  J*aScript数据结构转换:将对象数组按类别分组  Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  163邮箱官方主页登录 直达网易邮箱登录核心页面  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  Python中如何避免重复条件判断:利用数据结构实现动态逻辑  微信商城在哪里打开【步骤】  在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明  Pygame教程:解决用户输入与游戏状态更新不同步问题  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  最新韩小圈网页版登录入口_官网在线观看官方链接  sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE  在J*a中如何使用BigDecimal进行高精度计算_BigDecimal类应用指南  Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】  Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】  必由学登录入口 必由学官方网站在线访问链接  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  Win11截图该按哪些键 Win11截屏完整流程解析【教程】  如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构  想当下一个《2077》?《心之眼》Steam评价升至"多半好评"  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  fishbowl官网免费版 fishbowl养鱼网站入口  新三国志曹操传110级星符试炼夏侯渊极难攻略  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  Golang如何使用context实现超时取消_Golang context超时取消模式实践  “音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!  铁路12306的积分有效期是多久_铁路12306积分有效期说明  一加 14R 快充无反应_一加 14R 充电优化  抖音从哪里进入网页版_抖音官方入口链接  Centos/Linux 系统下安装 composer 的完整步骤  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  Spyder启动失败:字体文件权限拒绝错误解决方案  Go语言HTML解析:利用Goquery精准获取指定元素内容 

搜索