Tomcat的启动和关闭

来源

本文摘抄自  <Tomcat内核设计剖析> 一书。

Tomcat的批处理

​Tomcat的启动、关闭批处理脚本在/bin目录下。

startup.bat

第一部分
setlocal

set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%" :gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
goto end :okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
if exist "%EXECUTABLE%" goto okExec
goto end
:okExec

说明:

1、setlocal : 表示之后所有对环境变量的改变只限于本批处理文件。需要还原设置,可执行 endlocal,未显示执行,会在批处理的最后自动隐试执行endlocal命令。

Tomcat的批处理-LMLPHP

第二部分

确定了 catalina_home 的值,就已经确定了 catalina.bat。在启动时,会接收参数:

shutdown.bat

catalina.bat

是Tomcat服务器启动和关闭的核心脚本,最终目的是 组合出一个最终的执行命令。

第一部分

主要目的是按住 Ctrl+C 组合键终止程序时自动确认。

Tomcat的批处理-LMLPHP

第二部分

​用于设置CATALINA_HOME、CATALINA_BASE 两个变量。(再一次设置catalina_home 是为了直接运行这个bat启动)。

第三部分

​用于尝试寻找setenv.bat和setclasspath.bat并执行,然后将Tomcat的启动包bootstrap.jar和日志包tomcat-juli.jar添加到 CLASSPATH 环境变量中。

Tomcat的批处理-LMLPHP

第四部分

​对日志配置的设置。

第五部分

执行命令前的一些参数的初始化。

第六部分

根据不同的参数跳转到不同的位置执行不同的命令,为下一步的执行命令做准备。

第七部分

将前面所有脚本运行后组成一个最终的命令并开始执行。

Tomcat的批处理-LMLPHP

05-11 20:24