• 怎样让Tomcat启动一定成功(局限)


      众所周知,Tomcat在启动的时候如果端口被占用,那么启动就一定不成功的。以下内容具有局限性,仅在端口是Tomcat本身占用端口的情况下有效。如何更加使这种做法更具有广泛性,正在思考中。

      第一种方法:强制结束进程。由于Tomcat启动的进程是“java.exe”,因此在winxp/win2003下,我们可以通过ntsd命令强制结束该进程。

    ntsd -c q -pn java.exe

      通过在Tomcat/bin的startup.bat的开始添加此段代码,强制结束java.exe进程。但是这样的做法具有很大的局限性和风险性。第一,强制结束进程可能带来的后果是导致系统的不稳定,而作为一个服务端,稳定性是非常重要的;第二,如果该服务器上具有其他的程序调用了“java.exe”,那么其他程序也同时就跑不了了。这种做法是极其不值得推荐的。

      第二种方法:调用Tomcat自带的“shutdown.bat”来结束Tomcat进程。

    tasklist|find /"java.exe" || goto okStart
    CALL %CATALINA_HOME%\bin\shutdown.bat
    :okStart
    set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat

      我的做法是在Tomcat设置EXECUTABLE之前先判断当前进程中是否存在“java.exe”。tasklist命令查询出当前进程列表,find命令找出进程列表中是否存在“java.exe”。如果存在,则调用shutdown.bat,否则的话,就跟原来的startup.bat的执行没什么两样。这样做虽然要比上面的第一种方法要来的好,但是还是有改良的余地。

      而Tomcat结束掉进程是需要时间的,一般来说几秒就够了,因此要给一个几秒的延迟。我这里采用的是用ping命令来实现延迟。

    ping -n 5 127.0.0.0.1>nul

    这样就有4秒的时间来等待Tomcat关闭。

  • 相关阅读:
    园友五一快乐
    silverlight 2.0 入门教程(三)
    AJXA控件示例之   Accordion
    LINQ学习入门教程(一)
    泛型学习笔记
    梆定一个方法并把数据库中的值作为参数
    翻译IP地址转换成IP Number并得到国家
    vs 2005中解决找不到模板项
    silverlight 入门学习(二)
    最近的学习计划
  • 原文地址:https://www.cnblogs.com/docmao/p/1626431.html
Copyright © 2020-2023  润新知