zoukankan      html  css  js  c++  java
  • linux下实时监测tomcat关闭并启动

    linux下tomcat总是会无故出现自动关闭的情况,在暂时无法解决该问题时,就需要一个东西能实时监测tomcat是否还正常的运行,若发现已关闭时,执行启动命令。

    我们可以添加一个shell脚本来实现监测和启动功能:

     1 # DEFINE  
     2  
     3 # 获取tomcat进程ID  
     4 TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-5.5.23'|grep -v 'grep'|awk '{print $2}')  
     5  
     6 # tomcat启动程序(这里注意tomcat实际安装的路径)  
     7 StartTomcat=/usr/local/tomcat/bin/startup.sh  
     8 TomcatCache=/usr/local/tomcat/work  
     9  
    10 # 定义要监控的页面地址   
    11 WebUrl=http://localhost:8080/
    12  
    13 # 日志输出  
    14 GetPageInfo=/www/logs/tomcatrestart/TomcatMonitor.Info  
    15 TomcatMonitorLog=/www/logs/tomcatrestart/TomcatMonitor.log  
    16  
    17 Monitor()  
    18 {  
    19   echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"  
    20   if [ $TomcatID ];then  # 这里判断TOMCAT进程是否存在  
    21      echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."  
    22      # 检测是否启动成功(成功的话页面会返回状态"200")  
    23      TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})  
    24      if [ $TomcatServiceCode -eq 200 ];then  
    25         echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......"  
    26      else  
    27         echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"  
    28         echo "[error]页面访问出错,开始重启tomcat"  
    29         kill -9 $TomcatID   # 杀掉原tomcat进程  
    30         sleep 3  
    31         rm -rf $TomcatCache # 清理tomcat缓存  
    32         $StartTomcat  
    33      fi  
    34   else  
    35      echo "[error]tomcat进程不存在!tomcat开始自动重启..."  
    36      echo "[info]$StartTomcat,请稍候......"  
    37      rm -rf $TomcatCache  
    38      $StartTomcat   
    39   fi  
    40   echo "------------------------------"  
    41 }  
    42 Monitor >>$TomcatMonitorLog

    接下来可以使用crontab将脚本加入定时任务中,只需在terminal中输入以下:

    1 crontab -e
    2 1 * * * * /tomcat-restart.sh

    输入crontab -e命令后,回车,接下来的使用方式就如同执行vi命令是一样的,想要输入时,单击【i】,输入完成后单击【Esc】,输入:wq即可保存输入。

    此时,执行service crond restart;命令,即可执行脚本。

    上面,我设置每过1分钟就要执行一次脚本。

  • 相关阅读:
    【iOS】去掉Tabbar顶部线条
    iOS中控制器的释放问题
    码云平台帮助文档_V1.2
    iOS键盘 样式/风格
    cocoapods的安装 升级版
    Unity异常捕获
    tomcat和jdk的安装配置
    Unity读取Excel表格
    NFS
    K8S存储相关yaml
  • 原文地址:https://www.cnblogs.com/fanelephant/p/3993230.html
Copyright © 2011-2022 走看看