惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
V
V2EX
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
H
Help Net Security
腾讯CDC
D
Docker
P
Proofpoint News Feed
GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
aimingoo的专栏
aimingoo的专栏

博客园 - 且行且思

Win11 家庭版 远程桌面连接-突然发生身份验证错误,(错误代码: 0x800706be) — 通过添加windows凭证解决 Cesium 加载 3dtiles ,实现球体旋转、模型定位 用echarts打造会转的立体饼图 BaseMetas Fileview在线文件预览解决方案 ECharts GL | 3D 地图区域高度设置 物联网智慧平台 蚂蚁地理空间数据可视化 - 基于 WebGL 的开源大规模地理空间数据可视分析引擎。 主流开源JS地图框架选择 kk-anti-reptile 是适用于基于 spring-boot 开发的分布式系统的开源反爬虫接口防刷组件。 NProgress 给 Vue 路由切换加个 “假” 进度条提升用户体验 一个watch让页面卡成PPT? 只会 !important 改 UI? Vue 深度选择器解法 JAVA 对于class文件反编译,CFR 通常能产生最完整的代码。 用AI辅助设计登录页 免费白嫖Claude 4小技巧 Jmeter压测工具入门篇 性能工具之 JMeter 快速入门 高并发压力测试工具清单 Nginx 单机多实例负载均衡 IntelliJ IDEA 中 Shared Build Process Heap Size 的重要性与配置 微信小程序实现流式传输(打字机效果)
Tomcat服务自动关闭 , 定时检查并重启
且行且思 · 2026-04-09 · via 博客园 - 且行且思
@echo off
title Auto-%date%-%time%-%cd%)

SETLOCAL ENABLEDELAYEDEXPANSION

rem 链接http://www.xxx.cn/site
set URL="https://www.xxx.cn/site"
rem tomcat目录
set TOMCAT_HOME="D:\Tomcat 8.5"
rem 关闭tomcat命令的路径
set CLOSE_CMD=%TOMCAT_HOME%\bin\shutdown.bat
rem 启动tomcat命令的路径
set START_CMD=%TOMCAT_HOME%\bin\startup.bat
rem tomcat缓存目录
set TOMCAT_CACHE=%TOMCAT_HOME%\HuanCun
rem 日志文件的路径
set LOG_PATH=%TOMCAT_HOME%\check_bat.log
rem 每次检测完后等待时间,再进行下一次检测,秒,若将程序部署到系统计划任务,可忽略
set TIME_WAIT=8

:loop
set httpcode=0
cd /d %TOMCAT_HOME%
echo %date% %time%
echo 'begin checking tomcat'

echo %date% %time% >>%LOG_PATH%
for /l %%i in (1,1,10) do (
    echo %%i
    for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do (
        set httpcode=%%r
        if !httpcode!==200 (
            GOTO :OUTFOR
        )
    )
)

:OUTFOR
echo %httpcode% >>%LOG_PATH%

if not %httpcode%==200 (
   rem  FOR /F "tokens=6 delims= " %%P IN ('netstat -a -n -o ^| findstr :8000') DO TaskKill.exe /PID %%P

    for %%a in (8000) do (
        set pid=0
        for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (
            set temp=%%b
            for /f "usebackq delims=: tokens=2,5" %%i in (`set temp`) do (
                if %%j==%%a (
                    taskkill /f /pid %%c
                    set pid=%%c
                    echo 端口号【%%a】相关进程已杀死
                ) else (
                    echo 不是本机占用端口【%%a】
                )
            )
        )
        if !pid!==0 (
           echo 端口号【%%a】没有占用
        )
    )


    echo close tomcat >>%LOG_PATH%
    call %CLOSE_CMD%
    timeout -t 5 >nul
    echo success to close tomcat >>%LOG_PATH%

    rd /S /Q %TOMCAT_CACHE%
    echo start tomcat >>%LOG_PATH%
    call %START_CMD%
    
    echo success to start tomcat
    echo success to start tomcat >>%LOG_PATH%
) else (
    echo the tomcat run is ok
    echo the tomcat run is ok >>%LOG_PATH%
)
timeout -t 3 >nul
rem 若将脚本程序部署到系统计划程序中,将以下代码可注释
timeout -t %TIME_WAIT% >nul
goto loop