专栏首页donghui的博客Tomcat脚本简要分析 原

Tomcat脚本简要分析 原

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 <algorithm> [-e <encoding>] <credentials>

例如:

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,运行结果如下:

摘录 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

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jenkins:批量自动将 Maven 类型 Job 迁移到自由风格类型

    近期进行 Jenkins 从1.X到2.X的升级演练 Jenkins2 最新版本只能在 JDK8 或 JDK11 版本下运行,我所使用的 JDK 版本为 JD...

    donghui
  • linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理

    (adsbygoogle = window.adsbygoogle || []).push({});

    donghui
  • Jenkins Python Plugin获取环境变量

    官方wiki:https://wiki.jenkins-ci.org/display/JENKINS/Python+Plugin

    donghui
  • 基于nGrinder下的web网站性能测试

    nGrinder 看名字估计很多人就猜到跟Grinder有关系。nGrinder是韩国一家公司居于Grinder二次开发的一个性能平台。nGrinder具有 开...

    用户6367961
  • 跨平台恶意软件Adwind卷土重来,这一次倒霉的是航空航天领域

    网络犯罪分子其实都是机会主义者,随着各类操作系统的应用范围越来越广泛,他们也在不断地丰富自己的工具和技术。与此同时,为了尽可能地在网络犯罪活动中谋取更多的经济利...

    FB客服
  • 英伟达推出LaneNet DNN模型,可以高精度检测道路标识和地标

    车道和道路边缘检测对于自动驾驶汽车的开发至关重要,车道检测为诸如车道偏离警告之类的系统提供动力,可帮助驾驶员避免偏离车道。除了检测车道线信息外,自动驾驶汽车还需...

    AiTechYun
  • 哪个图是机器画的? | 一个新的AI系统通过了图灵测试

    人工智能最大的任务不是分类和识别,而是让机器学会“思考”。 本文展示了MIT在人工智能的最新研究成果,一个新的人工智能系统,它: 1)通过了视觉图灵测试(图灵测...

    数说君
  • 「人物特写」微软加速器CEO罗斌:小公司只做小公司的生意,就是个伪命题

    镁客网
  • 二进制安装k8s集群(9)-安装kubectl

    在上一篇文章里我们主要介绍kube-apiserver的安装,这里我们主要介绍安装kubectl客户端命令工具。对于kubectl安装比较简单,直接将binar...

    TA码字
  • 2018安恒信息全国渠道招募会(重庆站)圆满落幕

    6月28日,2018安恒信息全国渠道招募会(重庆站)暨“西湖论剑•网络安全大会”全国巡展(重庆站)成功举办。本次会议聚焦“新时代,新安全,新力量”主题,来自重庆...

    安恒信息

扫码关注云+社区

领取腾讯云代金券