Tomcat 监视器应用程序

Tomcat11w 是一个用于监控和配置 Tomcat 服务的 GUI 应用程序。

命令行指令

每个命令行指令都采用 //XX[//ServiceName] 的形式

如果省略 //ServiceName 组件,则假定服务名称为文件名减去 w 后缀。 因此,默认服务名称为 Tomcat11。

可用的命令行指令包括:

//ES

Edit service configuration

这是默认操作。如果提供了 no 选项,则调用 ID。启动 GUI 应用程序,该应用程序允许修改、启动和停止服务配置。

//MS

Monitor 服务

启动 GUI 应用程序并将其最小化到系统托盘。

//MR

监控和运行服务

启动GUI应用程序并将其最小化到系统托盘。如果服务当前未运行,请启动该服务。

//MQ

Monitor quit

停止服务的任何正在运行的监视器。

Tomcat 服务应用程序

Tomcat11 是一个服务应用程序, 用于将 Tomcat 11 作为 Windows 服务运行。

命令行指令

每个命令行指令都采用 //XX[//ServiceName] 的形式

可用的命令行指令包括:

//TS

将服务作为控制台应用程序运行

这是默认操作。如果提供了 no 选项,则调用 ID。ServiceName 是不带 exe 后缀的可执行文件的名称,即 Tomcat11

//RS

运行

仅从 ServiceManager 调用的服务

//ES

启动(执行)服务

//SS

停止服务

//US

Update 服务参数

//IS

Install 服务

//DS

Delete service

如果正在运行,则停止服务

//PS

Print service

打印命令以(重新)创建当前配置

//PP[//秒]

暂停服务

默认为 60 秒

//VS

版本

打印版本并退出

//?

帮助

打印使用情况和退出

命令行参数

每个命令行参数都以 -- 为前缀如果命令行参数以 ` 为前缀, 并且该参数支持多个值,则其 value 将附加到现有选项中。 在下表中,支持多个值的参数以 ` 为前缀。

如果存在与命令行参数同名但前缀为 PR_ 的环境变量,则它将优先。例如:

set PR_CLASSPATH=xx.jar

等效于提供

--Classpath=xx.jar

作为命令行参数。

参数名

默认

描述

--Description

服务名称:描述(最多 1024 个字符)

--DisplayName

ServiceName

服务显示名称

--Install

procrun.exe //RS//ServiceName

安装镜像

--Startup

手动

服务启动模式可以是自动手动

++DependsOn

此服务所依赖的服务列表。依赖服务使用 # 或 `;`字符

++Environment

将以 key=value 形式提供给服务的环境变量列表。它们使用 # 或 ;字符。如果需要使用 # 或 ;字符,则整个值必须括在单引号内。

--User

用于运行可执行文件的用户帐户。它仅用于 StartMode javaexe,并允许在没有 LogonAsService 权限的帐户下将应用程序作为服务运行。

--Password

用户帐户的密码由 --User 参数设置

--ServiceUser

指定运行服务的帐户的名称。使用 DomainName\UserName 格式的帐户名称。服务进程将以此用户身份登录。如果帐户属于内置域,则可以指定 .\UserName。请注意,服务控制管理器不接受标准名称的本地化形式,因此要使用它们,您需要根据需要指定 NT AuthorityLocalServiceNT AuthorityNetworkServiceLocalSystem

--ServicePassword

由 --ServiceUser 参数设置的用户账户密码

--LibraryPath

添加到用于查找 JVM 的 DLL 的搜索路径的目录。此目录既添加到 PATH 环境变量的前面,也作为 SetDLLDirectory 函数的参数添加。

--JavaHome

JAVA_HOME

设置与环境变量定义不同的JAVA_HOME

--jvm

auto

使用 auto(即从 Windows 注册表中查找 JVM)或指定`jvm.dll`的完整路径。可以在此处使用环境变量扩展。

++JvmOptions

-Xrs

将传递给 JVM 的 -D 或 -X 形式的选项列表。选项使用 # 或 ;字符。如果需要嵌入 # 或 ;字符,请将它们放在单引号内。(在 exe 模式下不使用)。

++JvmOptions9

在 Java 9 或更高版本上运行时将传递给 JVM 的 -D 或 -X 形式的选项列表。选项使用 # 或 ;字符。如果需要嵌入 # 或 ;字符,请将它们放在单引号内。(在 exe 模式下不使用)。

--Classpath

设置 Java 类路径。(在 exe 模式下不使用)。

--JvmMs

初始内存池大小(以 MiB 为单位)。(在 exe 模式下不使用)。

--JvmMx

最大内存池大小 (MiB)。(在 exe 模式下不使用)。

--JvmSs

线程堆栈大小(以 KiB 为单位)。(在 exe 模式下不使用)。

--StartMode

jvm、Java 或 exe 之一。模式包括:

  • jvm - 启动 Java 进程内。取决于 jvm.dll,参见 --jvm。

  • Java - 与 exe 相同,但自动使用默认的 Java 可执行文件,即 %JAVA_HOME%\bin\java.exe。确保 JAVA_HOME 设置正确,或使用 --JavaHome 提供正确的位置。如果未设置,procrun 将尝试从 Windows 注册表中查找默认 JDK(不是 JRE)。

  • exe - 将映像作为单独的进程运行

--StartImage

将要运行的可执行文件。仅适用于 exe 模式。

--StartPath

启动映像可执行文件的工作路径。

--StartClass

Main

包含启动方法的主类。适用于 jvm 和 Java 模式。(在 exe 模式下不使用)。

--StartMethod

main

方法名称 如果不同,则 main

++StartParams

将传递给 StartImage 或 StartClass 的参数列表。参数使用 # 或 ;字符。

--StopMode

jvm、Java 或 exe 之一。有关更多详细信息,请参阅 --StartMode

--StopImage

将在 Stop service 信号上运行的可执行文件。仅适用于 exe 模式。

--StopPath

停止映像可执行文件的工作路径。不适用于 jvm 模式。

--StopClass

Main

类将用于 Stop service signal。适用于 jvm 和 Java 模式。

--StopMethod

main

方法名称 如果不同,则 main

--StopParams

将传递给 StopImage 或 StopClass 的参数列表。参数使用 # 或 ;字符。

++StopTimeout

无超时

定义 procrun 等待服务正常退出的超时(以秒为单位)。

--LogPath

%SystemRoot%\System32\LogFiles\Apache

定义日志记录的路径。如有必要,创建目录。

--LogPrefix

commons-daemon

定义服务日志文件名前缀。日志文件是在 LogPath 目录中创建的。YEAR-MONTH-DAY.log 后缀

--LogLevel

Info

定义日志记录级别,可以是 Error、Info、Warn 或 Debug。(不区分大小写)。

--LogJniMessages

0

设置此非零值(例如 1)以捕获 procrun 日志文件中的 JVM jni 调试消息。如果正在使用 stdout/stderr 重定向,则不需要。仅适用于 jvm 模式。

--StdOutput

重定向的 stdout 文件名。如果命名为 auto,则在 LogPath 中创建名为 service-stdout.YEAR-MONTH-DAY.log 的文件。

--StdError

重定向的 stderr 文件名。如果命名为 auto,则在 LogPath 中创建名为 service-stderr.YEAR-MONTH-DAY.log 的文件。

--PidFile

定义用于存储正在运行的进程 ID 的文件名。实际文件是在 LogPath 目录中创建的

安装服务

手动安装服务最安全的方法是使用提供的 service.bat 脚本。 运行此脚本需要管理员权限。如有必要, 可以使用 /user 开关指定要用于安装服务的用户。

注意:如果启用了用户帐户控制 (UAC), 则当脚本启动“Tomcat11.exe”时,系统将要求提供其他权限。 如果要将其他选项作为 PR_* 环境变量传递给服务安装程序, 则必须在操作系统中全局配置它们,或者启动使用提升权限 设置它们的程序(例如,右键单击cmd.exe并选择“以管理员身份运行); 在 Windows 8(或更高版本)或 Windows Server 2012(或更高版本)上, 可以通过单击“文件”菜单栏从资源管理器打开当前目录的提升命令提示符)。 有关详细信息,请参阅 问题 56143。

Install the service named 'Tomcat11'
C:\> service.bat install

还有第二个可选参数,用于指定服务的名称, 如 Windows 服务中所示。

Install the service named 'MyService'
C:\> service.bat install MyService

使用非默认名称安装服务时,可以重命名 tomcat11.exe 和 tomcat11w.exe 以匹配所选的服务名称。 为此,请使用 --rename 选项。

Install the service named 'MyService' with renaming
C:\> service.bat install MyService --rename

如果使用 tomcat11.exe,则需要使用 //IS 参数。

Install the service named 'Tomcat11'
C:\> tomcat11 //IS//Tomcat11 --DisplayName="Apache Tomcat 11" ^
     --Install="C:\Program Files\Tomcat\bin\tomcat11.exe" --Jvm=auto ^
     --StartMode=jvm --StopMode=jvm ^
     --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^
     --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop

更新服务

要更新服务参数,需要使用 //US 参数。

Update the service named 'Tomcat11'
C:\> tomcat11 //US//Tomcat11 --Description="Apache Tomcat Server - https://tomcat.apache.org/ " ^
     --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

如果为服务指定了可选名称,则需要按如下方式指定它:

Update the service named 'MyService'
C:\> tomcat11 //US//MyService --Description="Apache Tomcat Server - https://tomcat.apache.org/ " ^
     --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

删除服务

要删除该服务,需要使用 //DS 参数。

如果服务正在运行,它将停止,然后删除。

Remove the service named 'Tomcat11'
C:\> tomcat11 //DS//Tomcat11

如果为服务指定了可选名称,则需要按如下方式指定它:

Remove the service named 'MyService'
C:\> tomcat11 //DS//MyService

调试服务

要在控制台模式下运行该服务,需要使用 //TS 参数。 可以通过按 Ctrl+CCtrl+BREAK 来启动服务关闭。 如果将 tomcat11.exe 重命名为 testservice.exe, 则只需执行 testservice.exe,默认情况下将执行此命令模式。

Run the service named 'Tomcat11' in console mode
C:\> tomcat11 //TS//Tomcat11 [additional arguments]
Or simply execute:
C:\> tomcat11

多个实例

Tomcat 支持安装多个实例。可以有一个 Tomcat 安装, 其中多个实例在不同的 IP/端口组合上运行,也可以有多个 Tomcat 版本, 每个版本在不同的 IP/端口上运行一个或多个实例。

每个实例文件夹都需要以下结构:

  • conf

  • logs

  • temp

  • webapps

  • work

conf 至少应包含 CATALINA_HOME\conf 中的以下文件的副本。 默认情况下,任何未复制和编辑的文件都将从 CATALINA_HOME\conf 中选取, 即 CATALINA_BASE\conf 文件会覆盖 CATALINA_HOME\conf 中的默认值。

  • server.xml

  • web.xml

必须编辑 CATALINA_BASE\conf\server.xml , 以指定要侦听的实例的唯一 IP/端口。 找到包含 <Connector port=“8080” …​, 并添加地址属性和/或更新端口号, 以便指定唯一的 IP/端口组合。

要安装实例,首先将 CATALINA_HOME 环境变量设置为 Tomcat 安装目录的名称。 然后创建第二个环境变量 CATALINA_BASE 并将其指向实例文件夹。 然后运行指定服务名称的 “service.bat install” 命令。

set CATALINA_HOME=c:\tomcat_11
set CATALINA_BASE=c:\tomcat_11\instances\instance1
service.bat install instance1

要修改服务设置,可以运行 tomcat11w //ES//instance1

对于其他实例,请创建其他实例文件夹, 更新 CATALINA_BASE 环境变量,然后再次运行“service.bat install”。

set CATALINA_BASE=c:\tomcat_11\instances\instance2
service.bat install instance2