zoukankan      html  css  js  c++  java
  • windows中tomcat无故宕机,如何自动重启tomcat(已解决)

    把项目发布到了服务器中,服务器用的是阿里云的(Windows sql server2012),项目是用Spring Boot+Mybatis,tomcat没用spring boot自带的,最后是打成war包发不上去的。一开始项目运行没事,但是运行几天之后tomcat就会自动关闭。查看日志文件没有发任何异常信息。纠结了很久,没有找到方法,也怀疑是服务器配置太低,可能运行项目的时候cpu和内存达到一定限度的时候,windows会自动杀死比较大的进程。但是由于资金有限,没有去升级配置。所以就做了一个自动重启tomcat的脚本。

    该脚本会自动检测tomcat启动成功后的一个地址,(就是你tomcat启动成功后能访问的一个地址,你可以写一个测试地址,或者直接访问 http://localhost:8080/)如果访问不到就会自动启动tomcat的start.bat文件。

    我写的脚本:下载

    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    
    rem 链接
    set URL="http://localhost/**"
    rem tomcat目录
    set TOMCAT_HOME="C:UsersAdministratorDesktopapache-tomcat8"
    rem 关闭tomcat命令的路径
    set CLOSE_CMD=%TOMCAT_HOME%inshutdown.bat
    rem 启动tomcat命令的路径
    set START_CMD=%TOMCAT_HOME%instartup.bat
    rem tomcat缓存目录
    set TOMCAT_CACHE=%TOMCAT_HOME%HuanCun
    rem 日志文件的路径
    set LOG_PATH=%TOMCAT_HOME%check.log
    rem 每次检测完后等待时间,再进行下一次检测,秒,若将程序部署到系统计划任务,可忽略
    set TIME_WAIT=5
    
    :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 (
        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

    把脚本随便放,然后直接运行。如果运行的窗口中信息正常,并且能够实现上述功能,就不用看我下面说的了。

    双击运行异常,报curl命令不是内部命令。这时你可以安装一下curl,很简单。我的是windows64位所以下载的是64位文件。

    我下载好并且运行成功的curl文件下载

    官网下载下载

    安装步骤:

    1、解压下载好的文件,拷贝I386/curl.exe文件到C:WindowsSystem32

    2、再次运行脚本。

    3、至此tomcat宕机后自动启动完成。

    ※※※※   安利一个资源网站:进入

  • 相关阅读:
    27、深入理解计算机系统笔记,网络编程
    29、深入理解计算机系统笔记,并发编程(concurrent)(1)
    28、深入理解计算机系统笔记,Web服务器简介
    18、Linux下编程风格
    26、深入理解计算机系统笔记,系统级I/O
    32、深入理解计算机系统笔记,Unix下处理错误的风格
    31、深入理解计算机系统笔记,并发编程(concurrent)(3)
    19、Linux编码规范
    ASP.NET 中 DropDownList+DataList(数据列表)的使用前台绑定
    ASP.NET中 DetailsView(详细视图)的使用前台绑定
  • 原文地址:https://www.cnblogs.com/alex96/p/12176710.html
Copyright © 2011-2022 走看看