当前位置: 首页 > news >正文

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%"

2,结合任务调度计划,实现定时重启tomcat,任务调度参考地址:

http://www.hskmm.com/?act=detail&tid=21376

相关文章:

  • 实用指南:【论文精读】Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
  • Chromium V8类型混淆漏洞CVE-2025-10585安全分析
  • Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生
  • 香橙派5pro驱动开发(一)
  • Python 脚本遇到 SSL 证书问题
  • sa-token开发时遇到的问题
  • HR如何摆脱入离职事务性内耗?组织管理系统助力聚焦人才价值挖掘
  • 基于SpringAI构建大模型应用
  • C# TCP - 串口转发 - 实践
  • 【研发规范】Git 提交(commit)、CodeReview规范
  • PCIE 各个管脚的作用是什么?
  • Windows 11 局域网打印机共享设置
  • DailyPaper-2025-9-29
  • gpd winmax2 fedora42 睡眠秒唤醒问题
  • 国企人力资源管理系统怎么选?内行人推荐这8款,功能、服务双保障
  • spring service注入命名规则
  • 完整教程:基于岗课赛证的中职物联网专业“综合布线课程”教学解决方案
  • tensorflow加载和预处理信息
  • linux查询磁盘空间,查询指定目录的空间 df命令
  • 轻松规划房贷:用好公积金贷款,让梦想之家触手可及
  • milvus使用的etcd空间整理
  • 本土化战略赋能:Gitee如何领跑中国DevOps黄金赛道
  • 打印机错误0x0000709,问题排查和修复指南
  • k8s使用的etcd空间清理
  • MyBatis 与 JPA 的核心对比
  • 2025.9.29 测试
  • 深度学习(CVAE)
  • c# aot orm 框架测试 mysql
  • 洛谷题单指南-进阶数论-P2303 [SDOI2012] Longge 的问题
  • PK-2877电流互感器在高频脉冲电源模块测试中的应用方案