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

Linux中定时监控Tomcat服务器进程并在进程结束时重启Tomcat服务器

目录

  • 一、问题
  • 二、解决方法
    • 1、创建定时任务文件
    • 2、修改Tomcat的部分文件
    • 3、添加系统的定时调度
    • 4、执行monitor.sh文件
    • 5、查看脚本执行的日志文件

一、问题

当我们的Tomcat配置完成后投入使用后,在用户使用一定时间后,Tomcat可能会出现一些问题导致进程结束,这是就需要我们手动重新启动。

但是开发人员也不能时时刻刻盯着Tomcat服务器,为了不导致程序上线后因为Tomcat出现线上bug,我们用以下方法去监控Tomcat进程,当进程结束时立刻自动重启Tomcat服务器。

二、解决方法

1、创建定时任务文件

在Linux根目录下创建一个 /datas/monitor.sh 脚本文件

#!/bin/sh
# 获取tomcat进程ID
TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')# tomcat启动程序,/datas/apache-tomcat-8.5.84/bin/startup.sh为tomcat的启动脚本
StartTomcat=/soft/apache-tomcat-8.5.82_1/bin/startup.sh
TomcatCache=/soft/apache-tomcat-8.5.82_1/work# 启动脚本打印的日志
TomcatMonitorLog=/tmp/TomcatMonitor.logMonitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then  #这里判断Tomcat进程是否存在echo "[info]tomcat正在运行,进程ID为:$TomcatID"
elseecho "[error]tomcat进程不存在!tomcat开始自动重启..."echo "[info]$StartTomcat,请稍候..."rm -rf $TomcatCache$StartTomcat
fi
echo "-------------end------------"
}
Monitor>>$TomcatMonitorLog

注:此文件最好不要放到Tomcat文件夹中,否则会导致定时任务查询不到Tomcat服务器的进程,一直重启服务器

2、修改Tomcat的部分文件

修改tomcat文件里bin目录下的setclasspath.sh文件,在文件里面添加JAVA_HOME 和 JAVA_JRE

export JAVA_HOME=/datas/jdk1.8.0_60
export JRE_HOME=/datas/jdk1.8.0_60/jre

在这里插入图片描述

3、添加系统的定时调度

修改/etc/crontab 文件,在文件末尾添加如下内容:

*/1 * * * * root /datas/monitor.sh

这里代表着每一分钟执行一次脚本,cron表达式可以随意修改成想要的多长时间执行一次
在这里插入图片描述

4、执行monitor.sh文件

先用如下命令赋予monitor.sh文件可执行的权限

chmod u+x  /datas/monitor.sh #赋予文件所有者执行文件的权限

进入/datas文件夹,执行之前创建的monitor.sh文件

cd /datas
./monitor.sh

5、查看脚本执行的日志文件

通过如下命令查看脚本执行情况

tail -f /tmp/TomcatMonitor.log

在这里插入图片描述
注:如果没有运行,执行如下命令重启Linux定时调度

systemctl restart crond 
http://www.lryc.cn/news/6780.html

相关文章:

  • 快速部署私有云笔记,免费享受多端同步
  • python生成 2048位随机质数 Miller-Rabin质数测试算法
  • ♡ — MySQL 查询缓存
  • 死锁检测组件 -- 使用hook检测死锁
  • 第2集丨Java中的数据类型汇总
  • 【基础篇】7 # 队列:队列在线程池等有限资源池中的应用
  • matlab进行双目标定获取双目参数并打印教程
  • JVM类加载机制
  • 8.1 优化概述
  • 从0到1一步一步玩转openEuler--14 openEuler DNF(YUM)配置管理
  • leetcode707 设计链表 带有输入和输出的
  • 100种思维模型之非sr思维模型-012
  • 绿竹生物再冲刺港交所上市:暂未商业化,孔健夫妇为实控人
  • 加拿大MSB金融牌照申请方案
  • javaEE 初阶 — 滑动窗口
  • 大咖说·图书分享|狼书(卷3):Node.js高级技术
  • 1.5配置NBMA和P2MP网络类型
  • Java面试题
  • opencv锁定鼠标定位
  • 机器连接和边缘计算
  • 利用NGROK将本地网站发布为一个公开网站
  • Vulnhub 渗透练习(一)—— Breach 1.0
  • 初探Spring采用Spring配置文件管理Bean
  • 【手写 Vuex 源码】第十二篇 - Vuex 插件机制的实现
  • 图像去噪技术简述
  • 数据迁移——技术选型
  • 第二十七章 java并发常见知识内容(CompletableFuture)
  • Qt扫盲-QMake 使用概述
  • Spring Cloud之Zuul
  • 为什么要有分布式锁?