tomcat监测自动关闭重启

本文介绍了一个用于自动监控Tomcat运行状态并执行重启操作的Shell脚本。通过检查进程数量,当发现Tomcat未运行时,脚本将自动启动Tomcat,确保服务的连续性和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

#!/bin/sh
# func:自动监控tomcat脚本并且执行重启操作
# 定义环境变量
export JAVA_HOME=/home/***/java/jdk1.8.0_101
export JRE_HOME=/home/***/java/jdk1.8.0_101/jre
export PATH=$JAVA_HOME/bin:$PATH
# DEFINE

#tomcat的进程数,由于脚本名称为monitor_tomcat.sh,所以排除了对monitor_tomcat的搜索
count=$(ps -ef|grep tomcat|grep -w 'apache-tomcat-8.5.35'|grep -v "grep"|grep -v "monitor_tomcat"|wc -l)
# tomcat启动程序(这里注意tomcat实际安装的路径)
StartTomcat=/home/****/tomcat/apache-tomcat-8.5.35/bin/startup.sh

# 定义要监控的页面地址 
#WebUrl=http://127.0.0.1:8080

# 日志输出
TomcatMonitorLog=/home/****/logs/TomcatMonitor.log
	
Monitor()
{
  echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
  if [ ${count} -le 0 ] ; then
       echo "[error]${date}tomcat进程不存在!tomcat开始自动重启...!"
	   $StartTomcat
  fi
    echo "------------------------------"
}
Monitor>>$TomcatMonitorLog

ps:刚开始监控的是tomcat的进程id(如下)

# 获取tomcat进程ID
#TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-8.5.35'|grep -v 'grep'|awk '{print $2}')


  echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
  if [ $TomcatID ];then # 这里判断TOMCAT进程是否存在
    #echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."
  else
    echo "[error]tomcat进程不存在!tomcat开始自动重启..."
    echo "[info]$StartTomcat,请稍候......"
    $StartTomcat
  fi
  echo "------------------------------"

但是不知道什么原因,tomcat启动了多个,就是进程id超过1个后,if判断永远是不存在tomcatid,导致继续执行$StartTomcat。tomcat进程越来越多。

所以之后就用了进程数量的判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值