windows下tomcat无故宕机自动检测重启,完美解决shutdown无法关闭问题

您所在的位置:网站首页 shutdown无法运行 windows下tomcat无故宕机自动检测重启,完美解决shutdown无法关闭问题

windows下tomcat无故宕机自动检测重启,完美解决shutdown无法关闭问题

2023-08-25 20:24| 来源: 网络整理| 查看: 265

windows下tomcat无故宕机自动检测重启,完美解决shutdown无法关闭问题

1、废话不说先上脚本这个脚本也是参考大佬的这个随便放在一个地方,直接管理员方式运行就可以

@echo off SETLOCAL ENABLEDELAYEDEXPANSION rem 链接 set URL="http://localhost:8345/" rem tomcat目录 set TOMCAT_HOME="D:\apache-tomcat-7.0.82" rem 关闭tomcat命令的路径 set CLOSE_CMD=%TOMCAT_HOME%\bin\closetomcatpid.bat rem 启动tomcat命令的路径 set START_CMD=%TOMCAT_HOME%\bin\startup.bat rem 日志文件的路径 set LOG_PATH=%TOMCAT_HOME%\check.log rem 每次检测完后等待时间,再进行下一次检测,秒,若将程序部署到系统计划任务,可忽略 set TIME_WAIT=5 :loop set httpcode=0 cd /d %TOMCAT_HOME% echo %date% %time% echo 'begin checking tomcat' echo %date% %time% >>%LOG_PATH% for /l %%i in (1,1,10) do ( echo %%i for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do ( set httpcode=%%r if !httpcode!==200 ( GOTO :OUTFOR ) ) ) :OUTFOR echo %httpcode% >>%LOG_PATH% if not %httpcode%==200 ( echo close tomcat >>%LOG_PATH% call %CLOSE_CMD% timeout -t 5 >nul echo success to close tomcat >>%LOG_PATH% echo start tomcat >>%LOG_PATH% call %START_CMD% echo success to start tomcat echo success to start tomcat >>%LOG_PATH% ) else ( echo the tomcat run is ok echo the tomcat run is ok >>%LOG_PATH% ) timeout -t 3 >nul rem 若将脚本程序部署到系统计划程序中,将以下代码可注释 timeout -t %TIME_WAIT% >nul goto loop

2、大佬用的是tomcat里面的shutdown.bat,但是生产环境里会遇到无法关闭的问题,再启动的时候会报错起不来,这里我进行改进,用自己写的脚本代替 ,主要改动是CLOSE_CMD这个参数,在tomcat的bin里面新增closetomcatpid.bat文件,用检测端口获取pid的方式结束进程,这样就可以关闭tomcat,并且过滤掉pid等于0的情况,如果不过滤可能会直接报错卡主,不往下执行,文件内容如下:

@echo off for /f "tokens=5" %%i in ('netstat -aon ^| findstr ":8345"') do ( if %%i NEQ 0 taskkill /f /pid %%i )

3、8345是端口号记得修改,需要你们修改的参数就是URL,tomcat目录,端口号这三个 特此感谢大佬的文章



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3