当前位置: 首页 > 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.rkmt.cn/news/14221.html

相关文章:

  • US$47.5 B48 MSV90 ISN Reading via OBD Authorization for Yanhua Mini ACDP
  • Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生
  • 构建用户-物品-场景的“关系宇宙 - 教程
  • 基于SpringAI构建大模型应用
  • 【研发规范】Git 提交(commit)、CodeReview规范
  • 国企人力资源管理系统怎么选?内行人推荐这8款,功能、服务双保障
  • k8s使用的etcd空间清理
  • MyBatis 与 JPA 的核心对比
  • 完整教程:Redis 提供了两种主要的持久化机制:RDB 和 AOF
  • QMT回测模式为什么要在副图进行
  • 判断权限通过遍历二叉树路由删除权限不展示的前端组件
  • 开发即时通社交软件APP首选系统,可定制开发,可提供源码
  • springboot3 mybatis 数据库操控入门与实战
  • 解决winform调用wpf窗体时原窗体缩小的问题
  • Linux系统OOM终止Oracle进程
  • 实用指南:《C++进阶之C++11》【可变参数模板 + emplace接口 + 新的类功能】
  • BST(self saved)
  • jenkins 用户权限 管理配置
  • Windows系统Web UI自动化测试学习系列4--开源体系平台测试项目环境部署搭建
  • Node生态中最优雅的数据库事务处理机制
  • 详细介绍:扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
  • 跨网文件交换系统:数字化时代企业与机构的数据安全传输利器
  • 【2025-09-29】团队合作
  • 数据库服务分布架构(MyCAT)
  • 题解:P14038 [PAIO 2025] Adventure Plan
  • 20231414_王仕琪_密码技术密码杂凑算法学习笔记
  • 堆设置了8G,java进程却占用了12G内存
  • IntelliJ IDEA 中 Shared Build Process Heap Size 的重要性与配置
  • 企业数字化转型战略规划:从愿景到落地的完整路径
  • Java 与智慧港口:航运调度与物流枢纽数字化