最近有个项目因为数据交换量比较大,而且mqtt的频繁请求造成挂起,需要定时重启tomcat。
@echo off
rem ---@echo off是关闭回现的,但具体貌似作用在于不显示一些内容,但类似于ping这类命令却还是显示---
rem
rem ---------------------------------------------------------------------------
rem 获取管理员权限
rem ---------------------------------------------------------------------------
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
rem 重启tomcat服务
rem 服务全称:tomcat8
rem 放置路径:C:\Program Files\Apache Software Foundation\Tomcat 8.5\bin
rem 日志路径:C:\Program Files\Apache Software Foundation\Tomcat 8.5\logs
rem bat运行日志:retartTomcat.log
rem 停止tomcat8后延时20S启动
rem taskkill命令参数 /F 指定要强行终止的进程。
rem taskkill命令参数 /IM image name 指定要终止的进程的映像名称。通配符 '*'可用来指定所有映像名。
rem taskkill命令参数 /T Tree kill: 终止指定的进程和任何由此启动的子进程。
rem
rem ---------------------------------------------------------------------------
echo %date% %time% shutdown tomcat8 >> "C:\Users\Administrator\Desktop\tomcatStartLog\retartTomcat.log"
taskkill /t /f /im tomcat8.exe
del /f /s /q "C:\Program Files\Apache Software Foundation\Tomcat 8.5\logs\*"
del /f /s /q "C:\Program Files\Apache Software Foundation\Tomcat 8.5\work\*"
rmdir /s /q "C:\Program Files\Apache Software Foundation\Tomcat 8.5\work\Catalina"
@echo off ping 127.0.0.1 -n 5
echo %date% %time% start tomcat8>> "C:\Users\Administrator\Desktop\tomcatStartLog\retartTomcat.log"
net start tomcat8
echo %date% %time% tomcat8 is running >> "C:\Users\Administrator\Desktop\tomcatStartLog\retartTomcat.log"
rem pause---------------------------------------------------------------------------
将上面的代码保存批处理文件,在操作系统的计划任务中添加定时操作即可;