Tomcat 服务应用
转自:http://wiki.jikexueyuan.com/project/tomcat/windows-service.html
Tomcat8 是一个服务应用,能使 Tomcat 8 以 Windows 服务的形式运行。
Tomcat 监控应用
Tomcat8w 是一个监控与配置 Tomcat 服务的 GUI 应用。
可用的命令行选项为:
| //ES// | 编辑服务配置 | 这是默认操作。如果没有提供其他选项,则调用它。但是可执行未见被重命名为servicenamew.exe。 |
| //MS// | 监控服务 | 将图标放到系统托盘中。 |
命令行实参
命令行指令格式为://XX//ServiceName。
可用的命令行选项为:
| //TS// | 以控制台应用的方式运行服务 | 默认操作。如果没有其他选项,则调用它。ServiceName 是可执行文件没有后缀 exe 的名称,即 Tomcat8。 |
| //RS// | 运行服务 | 只能被服务管理器调用 |
| //SS// | 停止服务 | |
| //US// | 更新服务参数 | |
| //IS// | 安装服务 | |
| //DS// | 删除服务 | 如果服务运行,则停止服务 |
命令行形参
每一个命令形参都有一个前缀 --。如果命令行前缀为 ++,则该值会附加到已有选项中。如果环境变量和命令行形参相同,但是前缀是 PR_,则它要优先处理。比如:
set PR_CLASSPATH=xx.jar
它等同于把以下作为命令行形参:
--Classpath=xx.jar
| 形参名称 | 默认 | 描述 |
|---|---|---|
--Description |
- | 服务名描述(最大 1024 字符) |
--DisplayName |
服务名 | 服务显示名 |
--Install |
procrun.exe //RS//ServiceName | 安装映像 |
--Starup |
manual | 服务启动模式有两种:auto 或 manual |
++DependsOn |
- | 该服务所依赖的一组其他服务。用 # 或 ; 字符来分隔依赖服务 |
++Environment |
- | 利用 键 = 值 形式提供给服务的一组环境变量。用 # 或 ; 字符来分隔依赖这些环境变量。如果需要在一个值中使用 # 或 ; 字符,那么整个值必须以单引号闭合。 |
--User |
- | 用于运行可执行文件的用户账户。只用于 StarMode 取 java 或 exe 这两种值时,并且能使应用作为一种服务,运行在没有 LogonAsService 特权下的账户下。 |
--Password |
- | 通过 --User 形参设定的用户账户密码。 |
--JavaHome |
JAVA_HOME | 设定一个与同名环境变量所不同的 JAVA_HOME |
--Jvm |
auto | 可以使用 auto(意即从 Windows 注册表中寻找 JVM),或者指定指向 jvm.dll 的完整路径。可以在此使用环境变量扩展。 |
++JvmOptions |
-Xrs | 传入 JVM 的一组选项,格式为 -D 或 -X。通过# 或 ; 字符来分隔依赖这些选项(不能用于 exe 模式)。 |
--Classpath |
- | 设定 Java 类路径(不能用于 exe 模式) |
--JvmMs |
- | 初始内存池容量,以 MB 计。不能用于 exe 模式 |
--JvmMx |
- | 内存池最大容量,以 MB 计。不能用于 exe 模式 |
--JvmSs |
- | 线程堆栈容量,以 KB 计。不能用于 exe 模式 |
--StartMode |
- | 取值为 jvm、java、exe 其中之一。这些模式的含义为:
|
--StartImage |
- | 运行的可执行文件。只适用于 exe 模式 |
--StartPath |
- | start 映像可执行文件的工作路径 |
--StartClass |
Main | 包含启动方法的类。适用于 jvm 与 java 模式,不适用于 exe 模式 |
--StartMethod |
main | 方法名如果不同,则使用 main |
++StartParams |
- | 传入 StartImage 或 StartClass 的一组形参。用 # 或 ; 字符来分隔形参。 |
--StopMode |
- | 取值为 jvm、java、exe 其中之一。更多详细描述参看 --StartMode |
--StopImage |
- | 运行于 Stop 服务信号下的可执行文件。只适用于 exe 模式 |
--StopPath |
- | 停止映像的可执行文件的工作路径。不适用于 jvm 模式 |
--StopClass |
Main | 用于 Stop 服务信号的类。适用于 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。(区分大小写) |
--StdOutput |
- | 重定向的标准输出文件名。如果指定为 auto,则文件创建在 LogPath 所定义的路径处,文件名形式为:service-stdout.YEAR-MONTH-DAY.log |
--StdError |
- | 重定向的标准错误文件名。如果指定为 auto,则文件创建在 LogPath 所定义的路径处,文件名形式为:service-stderr.YEAR-MONTH-DAY.log |
--PidFile |
- | 定义运行中的进程 id 的文件名。实际文件创建在 LogPath 目录中。 |
安装服务
最安全的手动安装服务的方式是利用提供的 service.bat 脚本。需要有管理员特权才能运行该脚本。为了安装服务,必要时可以采用 /user 指定一个用户。
注意:在 Windows Vista 或其他版本更新的 Windows 操作系统上,如果开启了用户账户控制功能(UAC,User Account Control),当脚本启动 Tomcat8.exe 时,系统会要求提供额外的特权。如果你想为服务安装程序传入附加选项,如 PR_* 环境变量,则必须在系统对它们进行全局配置,或者启动相关程序,利用更高级的特权来设置它们,比如:右键点击 cmd.exe 然后选择 “以管理员身份运行”;在 Windows 8(或更新版本)或 Windows Server 2012(或更新版本)系统中,还可以在文件资源管理器中点击“文件”菜单,为当前目录打开一个高级命令提示符(elevated command prompt)。详情参看问题 56143。
Install the service named 'Tomcat8'
C:\> service.bat install
还有第 2 个可选参数,可以让你指定服务名,就像 Windows 服务所展示的那样。
Install the service named 'MyService'
C:\> service.bat install MyService
如果使用 tomcat8.exe,你需要使用 //IS// 参数。
Install the service named 'Tomcat8'
C:\> tomcat8 //IS//Tomcat8 --DisplayName="Apache Tomcat 8" \
C:\> --Install="C:\Program Files\Tomcat\bin\tomcat8.exe" --Jvm=auto \
C:\> --StartMode=jvm --StopMode=jvm \
C:\> --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start \
C:\> --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop
更新服务
要想更新服务参数,需要使用 //US// 参数。
Update the service named 'Tomcat8'
C:\> tomcat8 //US//Tomcat8 --Description="Apache Tomcat Server - http://tomcat.apache.org/ " \
C:\> --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
如果想为服务指定可选名,需要以如下方式进行:
Update the service named 'MyService'
C:\> tomcat8 //US//MyService --Description="Apache Tomcat Server - http://tomcat.apache.org/ " \
C:\> --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
删除服务
如要删除服务,需使用 //DS// 参数。 如果服务正在运行,则会先停止然后再删除。
Remove the service named 'Tomcat8'
C:\> tomcat8 //DS//Tomcat8
为服务指定可选名的方式如下:
Remove the service named 'MyService'
C:\> tomcat8 //DS//MyService
调试服务
想要在控制台模式下运行服务,需使用 //TS// 参数。通过按下 CTRL+C or CTRL+BREAK 使服务关闭。如果将 tomcat8.exe 重命名为 testservice.exe,那么只需执行 testservice.exe,就会默认执行这个命令模式了。
Run the service named 'Tomcat8' in console mode
C:\> tomcat8 //TS//Tomcat8 [additional arguments]
Or simply execute:
C:\> tomcat8
多个实例
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 install 命令指定服务名称。
set CATALINA_HOME=c:\tomcat_8
set CATALINA_BASE=c:\tomcat_8\instances\instance1
service install instance1
修改服务设置,需要运行 tomcat8w //ES//instance1。
对于附加实例,创建附加实例文件夹,更新 CATALINA_BASE 环境变量,然后再次安装服务。
set CATALINA_BASE=c:\tomcat_8\instances\instance2
service install instance2
Tomcat 服务应用的更多相关文章
- Tomcat服务无法启动的问题
去年下半年公司就决定投入人力物力"跟风"做大数据方向的研究并应用到后续项目中,于是乎,我们也得熟悉下Java才行了. 先弄个JavaEE的开发环境再说吧.装JDK.JRE,其实JD ...
- CVE-2016-1240 Tomcat 服务本地提权漏洞
catalogue . 漏洞背景 . 影响范围 . 漏洞原理 . 漏洞PoC . 修复方案 1. 漏洞背景 Tomcat是个运行在Apache上的应用服务器,支持运行Servlet/JSP应用程序的容 ...
- Tomcat服务无法开启,点击start不一会就变成stopped
前天在学习J2EE方面技术时,运行一个调试示例,需要用到Tomcat服务,结果使用Myeclipse怎么也打不开服务.之后去尝试手动打开Tomcat服务也无法成功,一直弄了好几个小时.后来,问了一下隔 ...
- Windows平台Tomcat服务搭建
1. 下载 JDK下载 下载地址 Tomcat下载 下载地址 2. 安装配置 JDK安装配置 安装过程不再赘述. 配置: 环境变量: JAVA_HOME,变量值为:C:\JDK(具体请根据JDK ...
- Tomcat服务启动成功,但访问index.jsp出错 (jspInit)
本文引用自 --> http://zhouhaitao.iteye.com/blog/1164736 Tomcat服务启动成功,但访问index.jsp出错 环境:Tomcat6 + jdk6 ...
- 免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。
免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...
- nsis制作启动Tomcat服务的exe安装包教程
一. 准备工作 下载nsis相关工具包,点击此下载 1. 安装程序:nsis-2.46-setup.exe 2. 编辑程序:cnisedit203.exe 3. 帮助文档:NSIS205帮助文档.ra ...
- 【Tomcat 系统服务】将tomcat设置为系统服务,并且开机自启 + 卸载tomcat服务
1.首先 你得下载一个tomcat[一般都是解压版的,解压放在那里就能用] startup.bat shutdown.bat service.bat等文件都在tomcat的bin目录下 ,例如 ...
- tomcat服务重启linux
1杀掉tomcat 进程 用ssh登陆到服务器 lsof -i:8080 //找到端口 ps -ef|grep tomcat kill -9 端口 2找到tomcat目下的start ...
随机推荐
- Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数
11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...
- 【PRINCE2是什么】PRINCE2认证之七大原则(7)
我们先来回顾一下,PRINCE2七大原则分别是持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁 第七个原则:根据项目环境剪裁 PRINCE2的价值在于它是一个通用的项目管理方 ...
- 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器
企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...
- 05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 1.引入 概述 音频文件或视频文件都可以看做是一个容器文 ...
- HTML5系列目录
1. HTML5与HTML4的区别 2. HTML5结构 3. HTML5表单 4. HTML5文件 5. HTML5绘图 6. HTML6本地存储
- 【Win 10 应用开发】多媒体转码
上次本来说好,今天咱们来讨论 socket 相关的话题,但,对于 socket ,老周还有一些问题没弄清楚,等弄清楚了,再和大伙伴们一起探讨.故,今天咱们扯一扯多媒体转码的事. 听起来挺复杂的,不过, ...
- Linux文件系统的实现
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux文件管理从用户的层面介绍了Linux管理文件的方式.Linux有一个树状 ...
- 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码
这一篇首先从allitebooks.com里抓取书籍列表的书籍信息和每本书对应的ISBN码. 一.分析需求和网站结构 allitebooks.com这个网站的结构很简单,分页+书籍列表+书籍详情页. ...
- SSH(Struts2+Spring+Hibernate)框架搭建流程
添加支持 我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤 傻瓜式的学习..~) 首先我们来搭建一个Web项目: 一.Hibernate(数据层)的搭建: 相关描述 Ⅰ.服务器与数 ...
- scikit-learn一般实例之四:管道的使用:链接一个主成分分析和Logistic回归
主成分分析(PCA)进行无监督的降维,而逻辑回归进行预测. 我们使用GridSearchCV来设置PCA的维度 # coding:utf-8 from pylab import * import nu ...