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%\bin\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 "%tomcat_home%\bin\startup.bat" exit
----------------------------------------------------------------------------------------------
由於我電腦沒配%tomcat_home%變量,所以我稍微修改了下,先cd定位到Tomcat的bin目錄:
@echo off cd /d "D:\javatool\apache-tomcat\bin" 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。