Linux 下执行定时任务之 Systemd Timers

不知道 ECS 因为什么缘故,上面安装的 MySQL 服务老是不定期挂掉,本来想通过 Linux 得 Cron 配置个半小时的定时检测任务,结果一直没有执行,因此又尝试使用了 Systemd Timers 进行了重新配置,简要做个记录。

Systemd Timers 是现代 Linux 系统中 CRON 的一个强大替代品。它具有以下优点:
1. 更精确的时间控制,支持毫秒级精度。
2. 更好的日志管理和错误报告。
3. 可以轻松处理错过的任务(例如,系统关机时)。
4. 与其他 systemd 服务集成更好。

Systemd Timers 由两个主要组件组成:
1. Timer 单元(.timer 文件):定义何时触发任务。
2. Service 单元(.service 文件):定义要执行的实际任务。
当 Timer 单元触发时,它会启动相应的 Service 单元,这种分离允许更灵活的配置和管理。

第一步,创建需要执行的脚本文件。

这里目的是要检测 MySQL 服务是否启动,如果未启动,则尝试重启并再次检测,脚本路径比如在 /home/shell/mysql_restart.sh 下,内容参考如下:

#!/bin/bash# 检查MySQL进程是否在运行
echo "检查MySQL进程是否在运行..." >> mysql_restart.log
if ! pgrep -x "mysqld" > /dev/null ; thenecho "MySQL进程未运行,正在尝试重启服务..." >> mysql_restart.logsystemctl restart mysqldecho "MySQL重启命令已执行,接下来进入睡眠等待..." >> mysql_restart.log# 稍等一会儿再检查sleep 5# 再次检查MySQL进程echo "睡眠5秒后再次检查MySQL进程是否在运行..." >> mysql_restart.logif pgrep -x "mysqld" > /dev/null ; thenecho "MySQL服务重启成功,当前运行中。" >> mysql_restart.logelseecho "MySQL服务重启失败,请检查日志以获取更多信息。" >> mysql_restart.logfi
elseecho "MySQL进程正在运行。" >> mysql_restart.log
fi

第二步,创建 Service 单元。

在路径 /etc/systemd/system 下,创建需要执行脚本的 Service 单元,比如 mysql_restart.service,内容参考如下:

[Unit]
Description=定时运行MySQL重启脚本[Service]
Type=simple
ExecStart=/home/shell/mysql_restart.sh

第三步,创建 Timer 单元。

还是在路径 /etc/systemd/system 下,创建需要执行服务的 Timer 单元,比如 mysql_restart.timer,内容参考如下:

[Unit]
Description=定时运行MySQL重启脚本服务[Timer]
# OnCalendar=houry
# Persistent=true
OnBootSec=1min
OnUnitActiveSec=30min[Install]
WantedBy=timers.target

其中,OnBootSec 表示系统重启后多久开始执行定时任务;OnUnitActiveSec 表示当服务单元进入活动状态时多久执行一次定时任务。

第四步,加载服务并启动定时任务。

systemctl daemon-reload

systemctl enable mysql_restart.timer

systemctl start mysql_restart.timer

当然 Cron 定时任务还有很多其它的替代方法来实现,比如 Anacron、at 命令等,可以自行尝试,这里就不细展开说了,Good Luck!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yocto中如何来安装systemd服务

在 Yocto 项目中安装 systemd 服务可以按照以下步骤进行: 1. 创建服务单元文件(.service 文件) 在 Recipe 中处理:在 Yocto 中,为了将服务单元文件安装到目标系统,首先需要在软件包的 Recipe(…

UE5相机系统初探(一)

UE5相机系统初探(一) 和Unity类似,UE的相机也是由名为Camera的component控制的。那么,在UE中要如何实现一个跟随玩家的第三人称相机呢?假设我们已经有了一个表示玩家的类ACF_Character,首先第一步就是要先在…

【python】OpenCV—Tracking(10.4)—Centroid

文章目录 1、任务描述2、人脸检测模型3、完整代码4、结果展示5、涉及到的库函数6、参考 1、任务描述 基于质心实现多目标(以人脸为例)跟踪 人脸检测采用深度学习的方法 核心步骤: 步骤#1:接受边界框坐标并计算质心 步骤#2&…

萤火虫算法优化BILSTM神经网络多输入回归分析

目录 LSTM的基本定义 LSTM实现的步骤 BILSTM神经网络 代码 结果分析 展望 完整代码下载:的MATALB代码(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88755564 背影 bp神经网络是一种成熟的神经网络,应用非常广,本文用萤火虫算法…

通过嵌套循环输出二维矩阵

输出以下4*5的矩阵。 1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 20 输入格式: 无。 输出格式: 二维矩阵 代码如下&#xff1a; #include <stdio.h> int main() {for (int i 1; i < 4; i) {//行for (int j 1; j < 5; …

【maven】idea执行了maven的install命令给本地安装项目依赖包 安装后删除

目录 事件起因环境和工具操作过程解决办法1、找到对应的目录下的文件&#xff0c;手动去删除&#xff0c;比如我的依赖库的路径是D:\qc_code\apache-maven-3.8.2\repository 我只需要找到这个目录下对应的依赖包进行手动删除即可&#xff08;不推荐&#xff0c;强行删除文件夹文…

PostgreSQL 到 PostgreSQL 数据迁移同步

简述 PostgreSQL 是一个历史悠久且广泛使用的数据库&#xff0c;不仅具备标准的关系型数据库能力&#xff0c;还具有相当不错的复杂 SQL 执行能力。用户常常会将 PostgreSQL 应用于在线事务型业务&#xff0c;以及部分数据分析工作&#xff0c;所以 PostgreSQL 到 PostgreSQL …

Java项目实战II基于Java+Spring Boot+MySQL的智能推荐的卫生健康系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于Java、…

免费插件集-illustrator插件-Ai插件-闭合开放路径

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件&#xff0c;加强illustrator使用人员工作效率&#xff0c;实现图形编辑中闭合开放路径。首先从下载网址下载这款插件https://download.csdn.net/download/m0_67316550/8789…

WPF 实现冒泡排序可视化

WPF 实现冒泡排序可视化 实现冒泡排序代码就不过多讲解,主要是实现动画效果思路,本demo使用MVVM模式编写,读者可自行参考部分核心代码,即可实现如视频所示效果。 对于新手了解算法相关知识应该有些许帮助,至于其它类型排序,也可按该思路自行修改实现。 直接上代码,页面布…

老电脑不能装纯净版windows

手上有一台2016年的老笔记本电脑&#xff0c;用了8年&#xff0c;基本上能换的都换了一遍&#xff0c;散热风扇换了&#xff0c;键盘换了&#xff0c;屏幕换了&#xff0c;扬声器也换了&#xff0c;内存也换大了&#xff0c;甚至都换过固态硬盘&#xff0c;但是CPU没法换&#…

angular登录按钮输入框监听

说明&#xff1a;angular实现简单的登录页面&#xff0c;监听输入框的值&#xff0c;打印出来&#xff0c;按钮监听&#xff0c;打印数据 效果图: step1:E:\projectgood\ajnine\untitled4\src\app\app.config.ts import { ApplicationConfig, provideZoneChangeDetection } …

Java基于SpringBoot+Vue框架的房屋租赁管理系统(附源码,文档)

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

【前端】CSS知识梳理

基础&#xff1a;标签选择器、类选择器、id选择器和通配符选择器 font:font-style(normal) font-weight(400) font-size(16px) /line-height(0) font-family(宋体&#xff09; 复合&#xff1a; 后代选择器&#xff08; &#xff09;、子选择器&#xff08;>)、并集选择器(…

盖电子章的软件

e章宝&#xff08;也称为e-章宝&#xff09;是一款专业的电子印章管理和应用软件&#xff0c;它可以帮助用户创建、管理和使用电子印章。这款软件特别适用于需要频繁处理文件盖章的企业和个人&#xff0c;比如在合同签署、文件审批等场景中。 e章宝的主要功能包括&#xff1a;…

第16课 核心函数(方法)

掌握常用的内置函数及其用法。 数学类函数&#xff1a;abs、divmod、max、min、pow、round、sum。 类型转换函数&#xff1a;bool、int、float、str、ord、chr、bin、hex、tuple、list、dict、set、enumerate、range、object。 序列操作函数&#xff1a;all、any、filter、m…

基于AI深度学习的中医针灸实训室腹针穴位智能辅助定位系统开发

在中医针灸的传统治疗中&#xff0c;穴位取穴的精确度对于治疗效果至关重要。然而&#xff0c;传统的定位方法&#xff0c;如体表标志法、骨度折量法和指寸法&#xff0c;由于观察角度、个体差异&#xff08;如人体姿态和皮肤纹理&#xff09;以及环境因素的干扰&#xff0c;往…

C++ 实现俄罗斯方块游戏

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

《高频电子线路》—— 相位平衡条件判断准则

文章内容来源于【中国大学MOOC 华中科技大学通信&#xff08;高频&#xff09;电子线路精品公开课】&#xff0c;此篇文章仅作为笔记分享。 相位平衡条件判断准则 反馈电压或者从电感上获得&#xff0c;或者从电容上获得。分别为电感反馈三端振荡器&#xff0c;或者是电容反馈…

Chromium 在WebContents中添加自定义数据c++

为了能在WebContents中添加自定义数据先看下几个关键类的介绍。 一、WebContents 介绍&#xff1a; WebContents是content模块核心&#xff0c;是呈现 Web 内容&#xff08;通常为 HTML&#xff09;位于矩形区域中。 最直观的是一个浏览器标签对应一个WebContents&#xff0c…