Tomcat重启脚本

Tomcat自带只有startup.bat和shutdown.bat实现启动、关闭功能,每次重启要点2次比较麻烦,于是想写一个重启脚本。
刚开始在批处理脚本内容简单写了如下:
call shutdown.bat
call startup.bat
试了几次,也把call换成start等,也有问题,因为关闭和启动需求一些时间,有可能shutdown.bat还没执行完,又执行startup.bat。
后来搜索了下,找到这遍文章:https://zhangge.NET/378.html
----------------------------------------------------------------------------------------------
Tomcat重启脚本,送给有需要的JSP环境运维同行们~
运行环境:XP/windows 2003测试通过,其他环境由于手头上条件限制未测试;
脚本功能:在常规调用tomcat自带的关闭/重启脚本中加入假死判断,若出现假死则予以强行Kill掉相关Java进程;
脚本特点:可在tomcat/Jboss/apache混合平台使用,针对性的只重启tomcat相关进程;
注意事项:就是注意tomcat环境变量是否正确即可。

@echo off
title Tomcat重啟脚本
call "%tomcat_home%inshutdown.bat"
ping -n 6 127.1 >nul
wmic process where name="java.exe" get processid,commandline |findstr /i "tomcat" >#      
setlocal enabledelayedexpansion
for /f "delims=*" %%i in (#) do (      
   set var=%%i
   set var=!var:start  =#!      
   for /f "tokens=2 delims=#" %%a in ("!var!") do (
     set tomcatpid=%%a
    )
)
del # >nul      
if defined tomcatpid taskkill /pid !tomcatpid!
ping -n 3 127.1 >nul
call "%tomcat_home%instartup.bat"
exit

----------------------------------------------------------------------------------------------

由于我电脑没配%tomcat_home%变量,所以我稍微修改了下,先cd定位到Tomcat的bin目录:

@echo off  
cd /d "D:javatoolapache-tomcatin"  
  
title Tomcat重啟脚本  
call "shutdown.bat"  
ping -n 6 127.1 >nul  
wmic process where name="java.exe" get processid,commandline |findstr /i "tomcat" >#        
setlocal enabledelayedexpansion  
for /f "delims=*" %%i in (#) do (        
   set var=%%i  
   set var=!var:start  =#!        
   for /f "tokens=2 delims=#" %%a in ("!var!") do (  
     set tomcatpid=%%a  
    )  
)  
del # >nul        
if defined tomcatpid taskkill /pid !tomcatpid!  
ping -n 3 127.1 >nul  
call "startup.bat"  
exit  

测试成功,能正常重启Tomcat。

原文地址:https://www.cnblogs.com/gdjlc/p/7025886.html