tomcat创建bat启动,结合任务计划实现自动重启tomcat服务
1,创建XXX项目启动.bat,修改tomcat服务名以及日志地址
@echo off
:: 设置服务名(根据你的实际情况修改)
set SERVICE_NAME=Tomcat8
:: 日志文件路径(确保目录存在)
set LOG_FILE=D:\tomcat7\logs\restart.log
:: 获取当前时间
for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (
for /f "tokens=1-3 delims=: " %%x in ('time /t') do (
set CURRENT_TIME=%%a %%b %%c %%x:%%y
)
)
:: 写入日志函数
echo [INFO] %CURRENT_TIME% - 开始执行重启任务 >> "%LOG_FILE%"
:: 查询服务状态
sc query "%SERVICE_NAME%" | findstr /i "RUNNING" >nul 2>&1
if %errorlevel% == 0 (
echo [INFO] %CURRENT_TIME% - 服务 %SERVICE_NAME% 正在运行,准备停止... >> "%LOG_FILE%"
net stop "%SERVICE_NAME%" >> "%LOG_FILE%" 2>&1
if %errorlevel% == 0 (
echo [INFO] %CURRENT_TIME% - 服务已成功停止 >> "%LOG_FILE%"
) else (
echo [ERROR] %CURRENT_TIME% - 停止服务失败,请检查! >> "%LOG_FILE%"
)
timeout /t 10 >nul
) else (
sc query "%SERVICE_NAME%" | findstr /i "STOPPED" >nul 2>&1
if %errorlevel% == 0 (
echo [INFO] %CURRENT_TIME% - 服务 %SERVICE_NAME% 已停止,跳过关闭步骤 >> "%LOG_FILE%"
) else (
echo [WARN] %CURRENT_TIME% - 服务 %SERVICE_NAME% 状态未知(可能未安装或禁用) >> "%LOG_FILE%"
)
)
:: 启动服务
sc query "%SERVICE_NAME%" | findstr /i "STOPPED" >nul 2>&1
if %errorlevel% == 0 (
echo [INFO] %CURRENT_TIME% - 正在启动服务 %SERVICE_NAME%... >> "%LOG_FILE%"
net start "%SERVICE_NAME%" >> "%LOG_FILE%" 2>&1
if %errorlevel% == 0 (
echo [INFO] %CURRENT_TIME% - 服务 %SERVICE_NAME% 启动成功 >> "%LOG_FILE%"
) else (
echo [ERROR] %CURRENT_TIME% - 启动服务失败,请检查服务配置 >> "%LOG_FILE%"
)
) else (
echo [INFO] %CURRENT_TIME% - 服务 %SERVICE_NAME% 已经在运行或状态异常,跳过启动 >> "%LOG_FILE%"
)
echo [DONE] %CURRENT_TIME% - 重启任务执行完毕 >> "%LOG_FILE%"
echo -------------------------------------------------- >> "%LOG_FILE%"