Tomcat脚本简要分析

Easter79
• 阅读 698

Tomcat的脚本在bin目录下,有:catalina、startup、shutdown、setenv、digest、version等。

其中catalina 脚本 用于启动和关闭tomcat 服务器 ,是tomcat中最关键的脚本。

startup 脚本 和shutdown 脚本等 都是使用了不同的参数调用了catalina脚本:

startup 脚本 以start参数调用了catalina脚本,shutdown脚本以stop参数调用了catalina脚本。

catalina用法(摘自catalina脚本):

echo Usage:  catalina ( commands ... )
echo commands:
echo   debug                       Start Catalina in a debugger
echo   debug -security         Debug Catalina with a security manager
echo   jpda start                  Start Catalina under JPDA debugger
echo    run                           Start Catalina in the current window
echo   run -security             Start in the current window with security manager
echo    start                         Start Catalina in a separate window
echo   start -security           Start in a separate window with security manager
echo   stop                         Stop Catalina
echo   version                     What version of tomcat are you running?

例如:

catalina.bat start   在一个不同的窗口启动tomcat

catalina.bat run     在当前窗口启动tomcat

catalina.bat stop    关闭tomcat

digest是用指定的算法加密密码的脚本。

digest脚本用法:

Usage: RealmBase -a [-e ]

例如:

digest.bat -a MD5 password

运行结果如下:

password:5f4dcc3b5aa765d61d8327deb882cf99

MD5有16位和32位,加密后的字符串为十六进制数字,是不可逆的加密算法。

16位MD5加密后的字符串是提取了32位MD5加密后的字符串的中间16位。

version脚本是catalina服务器的版本脚本, 可以查看tomcat、os、JVM的版本等。

vresion脚本用法:

catalina.bat version或 version.bat,运行结果如下:

Tomcat脚本简要分析

摘录 catalina.bat 一些重要的注释

Environment Variable Prerequisites

CATALINA_HOME  May point at your Catalina "build" directory.

CATALINA_BASE   (Optional) Base directory for resolving dynamic portions of a Catalina installation. 

                             If not present, resolves to the same directory that CATALINA_HOME points to.

CATALINA_OPTS   (Optional) Java runtime options used when the "start", or "run" command is executed.

JAVA_OPTS           (Optional) Java runtime options used when the "start", "stop", or "run" command is executed.

Start/Stop Script for the CATALINA Server

译:CATALINA服务器的启动/停止脚本

Guess  CATALINA_HOME if not defined

译:如果未定义,猜测CATALINA_HOME

Copy  CATALINA_BASE from CATALINA_HOME if not defined

译:如果未定义,从CATALINA_HOME复制到CATALINA_BASE

Ensure that any user defined  CLASSPATH variables are not used on startup,
but allow them to be specified in  setenv.bat, in rare case when it is needed.

译:确保在启动时任何用户定义的CLASSPATH变量未被使用,但是如果需要在特殊情况下允许他们在setenv.bat指定

Get  standard environment variables

译:获得标准的环境变量

Get  standard Java environment variables

译:获得标准的java环境变量

Add  tomcat-juli.jar and  bootstrap.jar to classpath
tomcat-juli.jar can be over-ridden per instance
Note that there are no quotes as we do not want to introduce random
quotes into the CLASSPATH

译:将tomcat-juli.jar和bootstrap.jar添加到classpath

每个实例中tomcat-juli.jar可以被覆盖

Execute The Requested Command

译:执行需要的命令

Get remaining unshifted command line arguments and save them in the

译:获得剩余未移位的命令行参数

Execute Java with the applicable properties

译:用应用属性执行java

总结:

1、CATALINA_HOME是Tomcat的安装目录,CATALINA_BASE是Tomcat的工作目录。

     如果没有配置多个实例,CATALINA_BASE和CATALINA_HOME是一样的。

2、Tomcat默认使用JULI日志系统(可以参考官网文档修改成使用log4j)。与之相关的是 tomcat-juli.jar。

3、Tomcat的启动类是Bootstrap,它承担着管理Catalina的责任。与之相关的是 bootstrap.jar。

4、除了CATALINA_HOME和CATALINA_BASE环境变量,所有的环境变量都可以在“setenv”脚本指定。

     CATALINA_HOME和CATALINA_BASE环境变量不能在“setenv”脚本配置,因为他们用来定位那个文件。

5、只有在使用标准的脚本运行tomcat时才会使用“setenv”脚本;如果在windows上将tomcat安装成服务,服务包装器直接

     运行java(tomcat.exe),不使用脚本文件。

6、启动tomcat可以使用startup.bat或catalina.sh脚本,也可以使用catalina.bat/catalina.sh  start,

     这样会在新窗口中启动Catalina;

     可以使用catalina.bat/catalina.sh  run则会在当前窗口启动Catalina。

7、CATALINA_OPTS允许指定启动Tomcat的java命令的附加选项。

     注意:不要用JAVA_OPTS制定内存限制, 用来停止Tomcat的进程你不需要许多内存,那些设置属于CATALINA_OPTS。

8、CATALIAN_OPTS与JAVA_OPTS不同:

CATALIAN_OPTS和 JAVA_OPTS中的变量在 tomcat的 启动 命令"start"和"run" 被执行时使用, 在 tomcat的 关闭 命令"stop" 被执行时只有 JAVA_OPTS 中的变量可以被 使用。

其他应用也可能使用 JAVA_OPTS,tomcat将使用 CATALIAN_OPTS。

更多参考:

${CATALINA_HOME}/RUNNING.txt

${CATALINA_HOME}/bin

点赞
收藏
评论区
推荐文章
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
tomcat 重定向Web应用程序的目录
1.新建文件夹E:\\tomcat\_instance12.将tomcat目录向的conf,logs,temp,webapps,work复制到E:\\tomcat\_instance13.新建startup.batset"CATALINA_BASE%cd%"set"CATALINA_HOMED:\ap
Easter79 Easter79
3年前
Tomcat异常之——启动报错Failed to start component
在idea中运行tomcat时,遇到异常,异常信息如下:16Jan201816:33:37.325信息\localhoststartStop1\org.apache.catalina.startup.HostConfig.deployDescriptorDeployingconfigurationdescriptorC:\\U
Stella981 Stella981
3年前
Linux系统杀掉tomcat进程
打开终端cd/Java(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Flib.csdn.net%2Fbase%2Fjavase)/tomcat执行bin/startup.sh启动tomcat./startup.shbin/shutdown.sh停止tomc
Stella981 Stella981
3年前
Linux下shell脚本监控Tomcat的状态并实现自动启动
最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤。1.编写Shell脚本monitor.sh!/bin/sh\func:自动监控tomcat脚本
Stella981 Stella981
3年前
Linux环境下Tomcat部署项目,SpringSecurity实现的图形验证码出不来问题解决
1\.cd进入Tomcat的bin目录cdtomcat/bin2\.退出Tomcat服务./shutdown.sh3\.查看catalina.sh,按"i"键进入编辑模式,添加代码JAVA\_OPTS"$JAVA\_OPTSDjava.awt.headlesstrue",然后按"ESC"键退出编辑模式,输入"
Stella981 Stella981
3年前
Http协议入门、响应与请求行、HttpServletRequest对象的使用、请求参数获取和编码问题
1课程回顾web入门1)web服务软件作用:把本地资源共享给外部访问2)tomcat服务器基本操作:启动: %tomcat%/bin/startup.bat关闭:%tomcat%/bin/shutdown.bat访问tomcat主页:http://localhost:80803)web应用目录结构
Easter79 Easter79
3年前
Tomcat 操作脚本
经常操作tomcat,有点繁琐,便写了个脚本1.启动脚本:sh /topapp/apachetomcat/bin/startup.sh  /dev/null 2&1echo e "\e32m\e1m startup  ok\e0m"其中/topapp/apachetomcat/这个路径是你t
Wesley13 Wesley13
3年前
linux下打开、关闭tomcat,实时查看tomcat运行日志
启动:一般是执行shtomcat/bin/startup.sh停止:一般是执行shtomcat/bin/shutdown.sh脚本命令查看:执行psef|greptomcat输出如下\\\5144。。。等等.Bootstrapstart说明tomcat已经正常启动,5144就为进程号pid5144杀死:ki
Easter79 Easter79
3年前
Tomcat 免安装版一闪而过问题
1在使用免安装版Tomcat,遇到很多次运行startup.bat后,一个窗口一闪而过的。为了分析导致tomcat启动失败的原因,我们可以现在tomcat的目录下选中startup.bat文件,单击右键,选择编辑。2在startup.bat文本的最后敲上“pause”,保存后重新运行startup.bat\
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k