windows中tomcat无故宕机,如何自动重启tomcat


把项目发布到了服务器中,服务器用的是阿里云的(Windows sql server2012),项目是用Spring Boot+Mybatis,tomcat没用spring boot自带的,最后是打成war包发不上去的。一开始项目运行没事,但是运行几天之后tomcat就会自动关闭。查看日志文件没有发任何异常信息。纠结了很久,没有找到方法,也怀疑是服务器配置太低,可能运行项目的时候cpu和内存达到一定限度的时候,windows会自动杀死比较大的进程。但是由于资金有限,没有去升级配置。所以就做了一个自动重启tomcat的脚本。

该脚本会自动检测tomcat启动成功后的一个地址,(就是你tomcat启动成功后能访问的一个地址,你可以写一个测试地址,或者直接访问 http://localhost:8080/)如果访问不到就会自动启动tomcat的start.bat文件。

我写的脚本:下载

复制代码
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

rem 链接
set URL="http://localhost/**" rem tomcat目录 set TOMCAT_HOME="C:\Users\Administrator\Desktop\apache-tomcat8" rem 关闭tomcat命令的路径 set CLOSE_CMD=%TOMCAT_HOME%\bin\shutdown.bat rem 启动tomcat命令的路径 set START_CMD=%TOMCAT_HOME%\bin\startup.bat rem tomcat缓存目录 set TOMCAT_CACHE=%TOMCAT_HOME%\HuanCun 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% rd /S /Q %TOMCAT_CACHE% 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
复制代码

把脚本随便放,然后直接运行。如果运行的窗口中信息正常,并且能够实现上述功能,就不用看我下面说的了。

双击运行异常,报curl命令不是内部命令。这时你可以安装一下curl,很简单。我的是windows64位所以下载的是64位文件。

我下载好并且运行成功的curl文件:https://files.cnblogs.com/files/Fooo/curl-7.81.0_1-win64-mingw.zip

官网下载:下载      https://curl.se/windows/dl-7.81.0_1/

安装步骤:

1、解压下载好的文件,拷贝 curl.exe文件到C:\Windows\System32

2、再次运行脚本。

3、至此tomcat宕机后自动启动完成。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM