Windows下自动重启tomcat服务脚本

问题描述:

最近发现windows下的tomcat服务,莫名其妙的内存溢出;
由于该服务属于一些无源代码的项目,每天手工重启过于繁琐;
tomcat自带的shutdown脚本,无法保证及时停止tomcat服务;
停止tomcat服务后,需要等待tomcat占用的内存完全释放;

解决办法:

如果有人遇到类似上面描述的症状,可以使用如下脚本进行tomcat服务重启;
配置windows定时任务,每天0点自动重启,问题解决。

@echo off
rem -----------------------------------
rem 问题描述:
rem 最近发现windows下的tomcat服务,莫名其妙的内存溢出;
rem 由于该服务属于一些无源代码的烂尾项目,每天手工重启过于繁琐;
rem tomcat自带的shutdown脚本,无法保证及时停止tomcat服务;
rem 停止tomcat服务后,需要等待tomcat占用的内存完全释放;
rem
rem 解决办法:
rem 如果有人遇到类似上面描述的症状,可以使用如下脚本进行tomcat服务重启;
rem 配置windows定时任务,每天0点自动重启,问题解决。
rem -----------------------------------
title Windows下自动重启tomcat 服务脚本

echo 切换到tomcat目录
cd D:\tomcat-8510\bin

rem 查找端口对应的进程记录,并输出到pid.txt文件
netstat -ano|findstr 0.0.0.0:8510>pid.txt

rem 示例输出:
rem  TCP    0.0.0.0:8510           0.0.0.0:0              LISTENING       17928

rem 查找进程记录,提取第5列的值,并终止进程,for 默认根据空格,制表符,;等进行字符串分割
for /f "tokens=5" %%i in (%cd%\pid.txt) do (
	echo try to kill pid %%i
	taskkill /pid %%i /F
	goto :end
)

:end
echo 成功停止tomcat服务!

echo 等待10s,用于完全释放tomcat服务占用的内存
choice /t 10 /d y /n

echo 启动tomcat-8510
call startup.bat 

–END–

你可能感兴趣的:(tomcat)