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

Linux 定时监测 Java 服务

实现 Linux 定时监测 Java 服务,若服务未启动则执行启动,核心是通过Shell 脚本检测进程,再用crontab 设置定时任务来自动执行脚本。

第一步:编写服务监测与重启脚本

先创建一个 Shell 脚本,用于检查指定 Java 服务进程是否存在,不存在则启动。
脚本示例(以服务名含my-java-service为例)

1.新建脚本文件,比如 monitor_java_service.sh

vim /usr/local/scripts/monitor_java_service.sh

2.写入以下内容(根据服务实际情况修改)

#!/bin/bash
# 1. 替换为你的Java服务标识(如进程名、jar包名,确保唯一)
SERVICE_NAME="my-java-service"
# 2. 替换为你的服务启动命令(如启动jar包、执行sh脚本)
START_COMMAND="nohup java -jar /usr/local/app/my-java-service.jar > /var/log/my-java-service.log 2>&1 &"
# 3. 替换为你的服务日志路径(用于记录监测和启动日志)
LOG_FILE="/var/log/monitor_java_service.log"# 记录当前时间到日志
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始监测Java服务: $SERVICE_NAME" >> $LOG_FILE# 检查进程是否存在(grep -v grep 排除自身查询进程)
PROCESS=$(ps aux | grep $SERVICE_NAME | grep -v grep)if [ -z "$PROCESS" ]; thenecho "[$(date '+%Y-%m-%d %H:%M:%S')] 服务未启动,正在启动..." >> $LOG_FILE# 执行启动命令$START_COMMAND# 再次检查是否启动成功sleep 3if [ -z "$(ps aux | grep $SERVICE_NAME | grep -v grep)" ]; thenecho "[$(date '+%Y-%m-%d %H:%M:%S')] 服务启动失败!" >> $LOG_FILEelseecho "[$(date '+%Y-%m-%d %H:%M:%S')] 服务启动成功!" >> $LOG_FILEfi
elseecho "[$(date '+%Y-%m-%d %H:%M:%S')] 服务正在运行,无需操作。" >> $LOG_FILE
fi

3.给脚本添加执行权限

chmod +x /usr/local/scripts/monitor_java_service.sh

4.测试脚本是否正常工作

/usr/local/scripts/monitor_java_service.sh

5.查看日志确认结果

cat /var/log/monitor_java_service.log

第二步:用 crontab 设置定时任务

通过 Linux 自带的crontab工具,让脚本按指定频率(如每分钟、每 5 分钟)自动执行。
操作步骤

1.编辑当前用户的 crontab 任务(若需 root 权限,先执行su root)

crontab -e

2.在文件末尾添加定时规则(以每 30分钟执行一次为例)

# 格式:分 时 日 月 周 脚本路径(日志会追加到脚本指定的LOG_FILE中)
*/1 * * * * /usr/local/scripts/monitor_java_service.sh
  • 定时规则说明:
    */1 * * * *:每 1 分钟执行一次(常用: */5 * * * *每 5 分钟,0 * * * *每小时)
    可通过crontab 表达式在线生成工具自定义频率

3.保存并退出(vim 中按Esc,输入:wq回车)

4.重启 crontab 服务(确保任务生效,不同系统命令略有差异)

  • CentOS/RHEL:systemctl restart crond
  • Ubuntu/Debian:systemctl restart cron

5.查看 crontab 状态(确认服务正常运行)

systemctl status crond  # CentOS/RHEL
# 或
systemctl status cron   # Ubuntu/Debian
http://www.dtcms.com/a/573941.html

相关文章:

  • 体外产品的研发网站如何建设paypal网站做外贸
  • 浙江城乡建设局和住建局seo课程培训入门
  • 3系统需求调研项目整合管理
  • Nestjs框架: Consul健康检查与gRPC客户端动态管理优化方案
  • 开机自动启动activity
  • 医学图像分割评价指标Dice与HD95的详解
  • 杀毒软件杀毒原理(草稿)
  • 网站开发需要会的东西网页设计大赛主题
  • 如何将iPhone上的笔记传输到电脑
  • 发布公司信息的网站网推接单
  • MES 离散制造核心流程详解(含关键动作、角色与异常处理)
  • 网站建设方案与报价wordpress文章怎么生成标签
  • 雄安投资建设集团网站东莞网站建设咨询
  • ruoyi前端(vue3)框架,切换菜单白屏问题
  • HTML5+CSS3小实例:不用JS实现幽灵网格动画
  • 人工智能 机器学习 深度学习
  • 用C++从零开始实现的小型深度学习训练框架
  • 算法题(Python)数组篇 | 3.有序数组的平方
  • 网站引流怎么做广告海报图片
  • 专业人士怎样建网站超星网站开发实战答案
  • 做推广的网站那个好网路营销网站策划书
  • muduo库学习(1):Reactor模型的设计思想
  • 分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
  • 【UE·优化篇】使用FramePro优化UI性能
  • 网站建设个人工作室seo在线培训机构
  • 免费做网站怎么做网站吗上海做网站比较好的
  • 【观察者模式】深入 Spring 事件驱动模型:从入门到微服务整合实战
  • 大连永锐网站哪家做的推荐常州网站建设
  • React的设计理念与核心特性
  • 单片机中NRST引脚复用为GPIO