web server apache tomcat11-28-Windows Service

前言

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。

开源项目

从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。

系列文章

web server apache tomcat11-01-官方文档入门介绍

web server apache tomcat11-02-setup 启动

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

web server apache tomcat11-11-Jasper 2 JSP Engine

web server apache tomcat11-12-SSL/TLS Configuration

web server apache tomcat11-13-SSI

web server apache tomcat11-14-CGI

web server apache tomcat11-15-proxy

web server apache tomcat11-16-mbean

web server apache tomcat11-17-default-servlet

web server apache tomcat11-18-clusting 集群

web server apache tomcat11-19-load balance 负载均衡

web server apache tomcat11-20-connectors 连接器

web server apache tomcat11-21-monitor and management 监控与管理

web server apache tomcat11-22-logging 日志

web server apache tomcat11-23-APR

web server apache tomcat11-24-Virtual Hosting and Tomcat

web server apache tomcat11-25-Advanced IO and Tomcat

web server apache tomcat11-26-maven jars

web server apache tomcat11-27-Security Considerations

web server apache tomcat11-28-Windows Service

web server apache tomcat11-29-Windows Authentication

web server apache tomcat11-30-The Tomcat JDBC Connection Pool

web server apache tomcat11-31-websocket

web server apache tomcat11-32-rewrite

web server apache tomcat11-33-CDI

web server apache tomcat11-34-Ahead of Time compilation support

Tomcat 监控应用程序

Tomcat11w 是一个用于监控和配置 Tomcat 服务的图形用户界面应用程序。

命令行指令

每个命令行指令的格式为 //XX[//ServiceName]

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

可用的命令行指令包括:

  • //ES 编辑服务配置 这是默认操作。如果未提供任何选项,则调用此操作。启动允许修改、启动和停止服务配置的图形用户界面应用程序。
  • //MS 监视服务 启动图形用户界面应用程序并将其最小化到系统托盘。
  • //MR 监视并运行服务 启动图形用户界面应用程序并将其最小化到系统托盘。如果服务当前未运行,则启动服务。
  • //MQ 监视退出 停止任何正在运行的服务监视器。

Tomcat 服务应用程序

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

命令行指令

每个命令行指令的格式为 //XX[//ServiceName]

可用的命令行指令包括:

  • //TS 作为控制台应用程序运行服务 这是默认操作。如果未提供任何选项,则调用此操作。ServiceName 是没有 exe 后缀的可执行文件的名称,即 Tomcat11。
  • //RS 运行服务 仅从 ServiceManager 调用。
  • //ES 启动服务 执行服务。
  • //SS 停止服务 停止服务。
  • //US 更新服务参数 更新服务参数。
  • //IS 安装服务 安装服务。
  • //DS 删除服务 停止服务(如果正在运行)。
  • //PS 打印服务 打印(重新)创建当前配置的命令。
  • //PP[//seconds] 暂停服务 默认为 60 秒。
  • //VS 版本 打印版本并退出。
  • //? 帮助 打印用法并退出。

命令行参数

每个命令行参数都以 -- 为前缀。如果命令行参数以 ++ 前缀,并且参数支持多个值,则其值将附加到现有选项上。

参数名称 默认值 描述 --Description 服务名称描述(最多 1024 个字符) --DisplayName ServiceName 服务显示名称 --Install procrun.exe //RS//ServiceName 安装镜像 --Startup 手动 服务启动模式可以是 auto 或 manual ++DependsOn 此服务所依赖的服务列表。使用 # 或 ; 字符分隔依赖服务。 ++Environment 提供给服务的环境变量列表,格式为 key=value。使用 # 或 ; 字符分隔它们。如果需要在值中使用 # 或 ; 字符,则整个值必须用单引号括起来。 --User 用于运行可执行文件的用户帐户。仅在 StartMode 为 java 或 exe 时使用,并允许作为没有 LogonAsService 权限的帐户运行应用程序作为服务。 --Password 由 --User 参数设置的用户帐户的密码 --ServiceUser 指定服务应以其运行的帐户名称。使用形式为 DomainName\UserName 的帐户名称。服务进程将作为此用户登录。如果帐户属于内置域,可以指定 .\UserName。请注意,服务控制管理器不接受标准名称的本地化形式,因此要使用它们,您需要适当地指定 NT Authority\LocalService、NT Authority\NetworkService 或 LocalSystem。 --ServicePassword 由 --ServiceUser 参数设置的用户帐户的密码 --LibraryPath 用于定位 JVM 的 DLL 的搜索路径。此目录将添加到 PATH 环境变量的前面,并作为 SetDLLDirectory 函数的参数。 --JavaHome JAVA_HOME 设置与 JAVA_HOME 环境变量定义的不同的 JAVA_HOME --Jvm auto 使用自动(即从 Windows 注册表中查找 JVM)或指定 jvm.dll 的完整路径。您可以在此处使用环境变量扩展。 ++JvmOptions -Xrs 以 -D 或 -X 形式传递给 JVM 的选项列表。选项使用 # 或 ; 字符分隔。如果需要嵌入 # 或 ; 字符,请将它们放在单引号内。(在 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 主类,包含启动方法。适用于 jvm 和 Java 模式。(在 exe 模式中不使用。) --StartMethod main 如果与 main 不同,则为方法名 ++StartParams 将传递给 StartImage 或 StartClass 的参数列表。参数使用 # 或 ; 字符分隔。 --StopMode jvm、Java 或 exe 中的一个。有关详细信息,请参阅 --StartMode。 --StopImage 在停止服务信号上运行的可执行文件。仅适用于 exe 模式。 --StopPath 停止图像可执行文件的工作路径。不适用于 jvm 模式。 --StopClass 在停止服务信号上将使用的类。适用于 jvm 和 Java 模式。 --StopMethod main 如果与 main 不同,则为方法名 --StopParams 将传递给 StopImage 或 StopClass 的参数列表。参数使用 # 或 ; 字符分隔。 ++StopTimeout 无超时 定义 procrun 等待服务正常退出的超时时间(以秒为单位)。 --LogPath %SystemRoot%\System32\LogFiles\Apache 定义日志路径。如有必要,将创建该目录。 --LogPrefix commons-daemon 定义服务日志文件名前缀。日志文件将在 LogPath 目录中创建,并附带 .YEAR-MONTH-DAY 后缀 --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。

安装名为 'Tomcat11' 的服务:

C:\> service.bat install

还有第二个可选参数,可以让您指定服务的名称,如在 Windows 服务中显示的。

安装名为 'MyService' 的服务:

C:\> service.bat install MyService

当使用非默认名称安装服务时,tomcat11.exe 和 tomcat11w.exe 可能会被重命名以匹配所选服务名称。要执行此操作,请使用 --rename 选项。

使用重命名安装名为 'MyService' 的服务:

C:\> service.bat install MyService --rename

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

安装名为 '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 参数。

更新名为 '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

如果为服务提供了可选名称,则需要像这样指定它:

更新名为 '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 参数。 如果服务正在运行,将停止然后删除它。

删除名为 'Tomcat11' 的服务:

C:\> tomcat11 //DS//Tomcat11

如果为服务提供了可选名称,则需要像这样指定它:

删除名为 'MyService' 的服务:

C:\> tomcat11 //DS//MyService

调试服务

要以控制台模式运行服务,您需要使用 //TS 参数。服务的关闭可以通过按下 CTRL+C 或 CTRL+BREAK 来发起。如果将 tomcat11.exe 重命名为 testservice.exe,则可以直接执行 testservice.exe,并且默认情况下将执行此命令模式。

在控制台模式下运行名为 'Tomcat11' 的服务:

C:\> tomcat11 //TS//Tomcat11 [additional arguments]

或者简单地执行:

C:\> tomcat11

多个实例

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

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

  • 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" ... 的行,并添加 address 属性和/或更新端口号,以指定唯一的 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"。

参考资料

https://tomcat.apache.org/tomcat-11.0-doc/windows-service-howto.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.4.29力扣刷题记录-数组篇记录4

目录 一、697. 数组的度 二、448. 找到所有数组中消失的数字 三、442. 数组中重复的数据 四、 41. 缺失的第一个正数 五、485. 最大连续 1 的个数 一、697. 数组的度 哈希表 class Solution:def findShortestSubArray(self, nums: List[int]) -> int:# 哈希表# 找出最…

智慧旅游驱动行业革新:智能技术引领服务全面升级,匠心打造高品质、个性化旅游新体验

一、引言 随着科技的飞速发展和信息化程度的不断提高,智慧旅游正逐渐成为旅游业发展的新趋势。智慧旅游,顾名思义,是以智能化技术为支撑,通过大数据、云计算、物联网、人工智能等先进技术的应用,实现旅游服务的全面升…

探索PyTorch:开源深度学习框架的魅力

PyTorch作为一款开源深度学习框架,已经在学术界和工业界广泛应用。其简洁易懂的API、动态计算图以及丰富的工具和接口,使得它成为了许多研究人员和工程师的首选。本文将深入探讨PyTorch与深度学习的紧密联系,从其核心特点、应用领域以及未来发…

React Router 路由配置数组配组持久化

在一些特定场景下,你可能需要将路由配置数组进行持久化,例如从后端动态加载路由配置或根据用户权限动态生成路由配置。这时,持久化路由配置数组就很有用,可以避免每次应用启动时重新获取或计算路由配置。 持久化路由配置数组的步骤如下: 定义路由配置数组 首先,你需要定义一…

github fork项目不带tag解决

github中fork别人的项目,clone下来后发现只有代码,没有tag,而我们现在想基于某个tag生成新分支,然后基于这个分支来开发。 第一步,需要把原来的tag都同步过来 # Fork源仓库 # Repo: aaa/project # Fork: bbb/project…

ASR语音转录Prompt优化

ASR语音转录Prompt优化 一、前言 在ASR转录的时候,我们能很明显的感受到有时候语音识别不是很准确,这过程中常见的文本错误主要可以归纳为以下几类: 同音错误(Homophone Errors) 同音错误发生在不同词语发音相似或相…

使用Postman对@RequestPart和HttpServletRequest组合传参方式

使用Postman对RequestPart和HttpServletRequest组合传参方式 方法代码如下: /*** 发布*/ApiOperation("发布")ApiImplicitParams({ApiImplicitParam(name "req", value "json格式", dataType "Map", dataTypeClass Ma…

【在线名字作画HTML源码】

在线名字作画HTML源码 效果图部分源码领取源码下期更新预报 效果图 部分源码 index.htm <!DOCTYPE html> <html> <head> <title>在线名字作画|民间花鸟字|多彩花鸟虫鱼组合书法|藏字画|字谜语|飞帛板书|意匠文字</title> <meta http-equiv&…

搜维尔科技:Varjo XR-4客户体验中,在VR体验中获得高层次的视觉保真度和沉浸感。

Varjo XR-4系列是Varjo的最新一代头戴式显示器&#xff0c;其代表着世界领先的的混合现实技术和图形处理能力。新一代的XR-4更加迎合工业使用案例&#xff0c;在用户在VR体验中获得高层次的视觉保真度和沉浸感。 搜维尔科技&#xff1a;Varjo XR-4客户体验中&#xff0c;在VR…

HarmaonyOS鸿蒙应用科普课

一、什么是鸿蒙OS&#xff1f; 1.概念&#xff1a; 先给大家讲讲今天讲课的主题&#xff0c;鸿蒙OS是什么&#xff1f;鸿蒙系统大家都知道&#xff0c;就是一个操作系统&#xff0c;我们未来是为的成为鸿蒙程序员。所以我们不要将鸿蒙os完全等同于手机操作系统&#xff0c;太…

华为 huawei 交换机 配置 MUX VLAN 示例(汇聚层设备)

组网需求 在企业网络中&#xff0c;企业所有员工都可以访问企业的服务器。但对于企业来说&#xff0c;希望企业内部部分员工之间可以互相交流&#xff0c;而部分员工之间是隔离的&#xff0c;不能够互相访问。 如 图 6-4 所示&#xff0c; Switch1 位于网络的汇聚层&#xff0…

Nacos 安全零信任实践

作者&#xff1a;柳遵飞 Nacos 作为配置中心经常存储一些敏感信息&#xff0c;但是由于误用导致安全风险&#xff0c;最常见的主要是以下两个问题&#xff1a; 1&#xff09;Nacos 暴露公网可以吗&#xff1f;不可以&#xff0c;因为 Nacos 定位是注册配置中心&#xff0c;是…

ceph笔记 2

一、CephX 认证机制&#xff1a; 看这里 和这里 Cephadm安装Ceph(v17.2.5 Quincy) 1、mon负责认证&#xff0c;mon一定要三个&#xff0c;要不一个坏了以后还咋认证 2、认证完才能对ceph增删改查 3、 在 Ceph 中&#xff0c;这些命令和指令都是与 Ceph 权限控制相关的。让我逐…

Windows命令行基本命令

目录 什么是相对路径和绝对路径&#xff1f; 一、目录&#xff08;文件夹&#xff09;和文件操作 1.cd命令 用于切换目录 2.dir命令 用于显示目录和文件列表 3.md或mkdir命令 创建文件&#xff0c;也可以创建多级子目录 4.rd命令 用于删除目录 5.move命令 用于移动…

C++:拷贝构造函数和赋值运算符重载

目录 一、拷贝构造函数 1.1概念 1.2特征 二、赋值运算符重载 2.1运算符重载 2.2赋值运算符重载 2.2.1赋值运算符重载格式 2.2.2赋值运算符重载要求 2.2.3默认生成的赋值运算符重载 2.3前置和后置重载 一、拷贝构造函数 1.1概念 只有一个形参&#xff0c;这个形参是…

leetcode51.N皇后(困难)-回溯法

思路 都知道n皇后问题是回溯算法解决的经典问题&#xff0c;但是用回溯解决多了组合、切割、子集、排列问题之后&#xff0c;遇到这种二维矩阵还会有点不知所措。 首先来看一下皇后们的约束条件&#xff1a; 不能同行不能同列不能同斜线 确定完约束条件&#xff0c;来看看究…

Python爬虫(入门版)

1、爬虫是什么 简单的来说&#xff1a;就是用程序获取网络上数据。 2、爬虫的原理 如果要获取网络上数据&#xff0c;我们要给爬虫一个网址&#xff08;程序中通常叫URL&#xff09;&#xff0c;爬虫发送一个HTTP请求给目标网页的服务器&#xff0c;服务器返回数据给客户端&am…

jdbc的工具类和三层架构模型

jdbc工具类 由于JDBC的注册驱动&#xff0c;连接数据库&#xff0c;关闭资源的步骤是相同的&#xff0c;所以我们可以写一个JDBC工具类。 /* 工具类&#xff1a; 私有化构造方法 提供静态方法*/ public class jdbcUtil {private final static String DRIVER "com.mysql…

Java设计模式 _创建型模式_建造者模式(Builder)

一、建造者模式 1、建造者模式&#xff08;Builder Pattern&#xff09;是一种创建对象的设计模式。它允许你使用不同的构建策略来创建复杂对象。通常是在复杂类中通过静态内部类&#xff08;Builder&#xff09;来进行构建。 2、实现思路&#xff1a; &#xff08;1&#xf…

异地组网、网络部署、无线覆盖,贝锐蒲公英一步到位

面对网络架构复杂的企业总部&#xff0c;分散在各地的分支机构&#xff0c;以及出差的远程办公人员&#xff0c;如何才能高效异地组网&#xff1f; 为了确保总部、分部网络实现远程稳定、高速互访&#xff0c;以及远程人员安全访问总部业务系统&#xff0c;基于自研SD-WAN的贝…