linux下查看tomcat宕机并自动重启[通俗易懂]

linux下查看tomcat宕机并自动重启[通俗易懂]1.在服务器上创建tomcatMonitor.sh2.使文件生效chmodu+x*.sh3.编辑tomcatMonitor.sh文件,if及fi必须成对出现,如果ifthen写在一行需要用;隔开#!/bin/sh#获取tomcat的PIDTOMCAT_PID=$(ps-ef|greptomcat|grep-v’grep’|awk'{print$2}’)#tomcat的启动文件位置START_TOMCAT=/usr/local/tomcat6/bin/start

大家好,又见面了,我是你们的朋友全栈君。

1.在服务器上创建tomcatMonitor.sh

2.使服务器.sh文件生效chmod u+x *.sh

3.编辑tomcatMonitor.sh文件,if及fi必须成对出现,如果if then写在一行需要用;隔开

#!/bin/sh
# 获取tomcat的PID
TOMCAT_PID=$(ps -ef | grep tomcat | grep -v 'tomcatMonitor'  |grep -v 'grep' | awk '{print $2}')
# tomcat的启动文件位置
START_TOMCAT=/usr/local/tomcat6/bin/startup.sh
# 需要监测的一个GET请求地址
MONITOR_URL=http://localhost:8080/hnrwms/login.do?method=begin
# 监测日志输出路径
TOMCAT_MONITOR_LOG=/home/user/tomcatMonitor.log
Monitor()
{
  # 输出时间,注意date后有个空格
  echo "[$(date +'%F %H:%M:%S')]"
  echo "[info]$TOMCAT_PID,开始监控tomcat..."
  # 判断tomcat的PID是否存在,如不存在说明tomcat进程已关闭,注意[]前后,变量前后,都要有空格
  if [[ $TOMCAT_PID ]];then
    echo "[info]当前tomcat的PID为:$TOMCAT_PID,继续监测页面..."
    # 向监测的地址发送请求并获取响应码
    HTTP_REPONSE_STATUS=$(curl -l -m 10 -o /dev/null -s -w %{http_code} $MONITOR_URL)
    # 如果响应码为200证明tomcat在正常启用
    if [[ $HTTP_REPONSE_STATUS -eq 200 ]];then
      echo "[info]tomcat启动正常..."
    else
      echo "[error]页面返回码为$HTTP_REPONSE_STATUS,开始重启tomcat..."
      # 结束tomcat进程
      kill -9 $TOMCAT_PID
      # 5秒后重启tomcat
      sleep 5
      $START_TOMCAT
    fi
  else
    echo "[error]tomcat进程不存在,开始启动..."
    echo "[info]$START_TOMCAT,..."
    $START_TOMCAT
  fi
  echo "监测执行完成"
}
# 输出到指定文件中
Monitor>>$TOMCAT_MONITOR_LOG

4.编辑定时器

crontab -e

5.编辑定时器文件,设置每分钟执行一次,加入如下代码并保存

*/1 * * * * /home/user/tomcatMonitor.sh

6.重新加载定时器

systemctl reload crond.service

或者

 

service crond reload

7.输入如下代码可以看到tomcatManitor.sh已经在正常工作,如果log日志有多个tomcat进程应想办法过滤掉,不然会影响tomcat关掉进程和重启

tail tomcatMonitor.log

8.日志记录

linux下查看tomcat宕机并自动重启[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163633.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月23日 上午6:16
下一篇 2022年7月23日 上午6:36


相关推荐

  • 一文读懂C++虚继承的内存模型

    一文读懂C++虚继承的内存模型一文读懂C++虚继承的内存模型1、前言2、多继承存在的问题3、虚继承简介4、虚继承在标准库中的使用5、虚继承下派生类的内存布局解析6、总结1、前言C++虚继承的内存模型是一个经典的问题,其具体实现依赖于编译器,可能会出现较大差异,但原理和最终的目的是大体相同的。本文将对g++中虚继承的内存模型进行详细解析。2、多继承存在的问题C++的多继承是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。从概念上来讲这是非常简单的,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突

    2022年6月7日
    32
  • Agent的核心技能:工具调用——让AI从“纸上谈兵”到“动手实践”

    Agent的核心技能:工具调用——让AI从“纸上谈兵”到“动手实践”

    2026年3月15日
    3
  • OpenClaw架构解析:AI工程师的实战学习范本

    OpenClaw架构解析:AI工程师的实战学习范本

    2026年3月13日
    2
  • ftp服务器搭建并通过外网访问

    ftp服务器搭建并通过外网访问内网 FTP 如何端口映射到外网连接访问 通过公网路由器映射或 nat123 端口映射均可实现 前者是硬件公网端口映射 后者是软件内网端口映射 目的一样 方法不一 工具 原料 FTP 内网 nat123

    2025年12月10日
    6
  • vue动态组件component原理_component注解

    vue动态组件component原理_component注解componentis内置组件切换方法一:component组件(单独拿出一个组件来专门进行切换使用)使用is来绑定你的组件:如下面的reviewedPlanplanDetailsListattachmentList等引入的组件名changeViewFun是用来切换组件的方法通过给is绑定的currentView来实现切换组件pathUrl就是当前的路由…

    2025年12月3日
    4
  • Python、anaconda、pycharm、TensorFlow之间的关系及安装捷径

    Python、anaconda、pycharm、TensorFlow之间的关系及安装捷径1 anaconda 指的是一个开源的 Python 发行版本 其包含了 conda Python 等 180 多个科学包及其依赖项 因此 无需单独安装 Python 直接安装一个 anaconda 就拥有了包含 Python 的开发包 2 PyCharm 是一种 PythonIDE 如果想要安装 TensorFlow 等 直接在 pycharm 中安装即可 3 安装顺序首先安装 anaconda 然后安装 pycharm 在 pych

    2026年3月27日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号