问题描述:
最近发现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–