Tomcat8 是一個(gè)服務(wù)應(yīng)用,能使 Tomcat 8 以 Windows 服務(wù)的形式運(yùn)行。
Tomcat8w 是一個(gè)監(jiān)控與配置 Tomcat 服務(wù)的 GUI 應(yīng)用。
可用的命令行選項(xiàng)為:
//ES// | 編輯服務(wù)配置 | 這是默認(rèn)操作。如果沒(méi)有提供其他選項(xiàng),則調(diào)用它。但是可執(zhí)行未見(jiàn)被重命名為servicenamew.exe。 |
//MS// | 監(jiān)控服務(wù) | 將圖標(biāo)放到系統(tǒng)托盤中。 |
命令行指令格式為://XX//ServiceName。
可用的命令行選項(xiàng)為:
//TS// | 以控制臺(tái)應(yīng)用的方式運(yùn)行服務(wù) | 默認(rèn)操作。如果沒(méi)有其他選項(xiàng),則調(diào)用它。ServiceName 是可執(zhí)行文件沒(méi)有后綴 exe 的名稱,即 Tomcat8。 |
//RS// | 運(yùn)行服務(wù) | 只能被服務(wù)管理器調(diào)用 |
//SS// | 停止服務(wù) | |
//US// | 更新服務(wù)參數(shù) | |
//IS// | 安裝服務(wù) | |
//DS// | 刪除服務(wù) | 如果服務(wù)運(yùn)行,則停止服務(wù) |
每一個(gè)命令形參都有一個(gè)前綴 --
。如果命令行前綴為 ++
,則該值會(huì)附加到已有選項(xiàng)中。如果環(huán)境變量和命令行形參相同,但是前綴是 PR_
,則它要優(yōu)先處理。比如:
set PR_CLASSPATH=xx.jar
它等同于把以下作為命令行形參:
--Classpath=xx.jar
形參名稱 | 默認(rèn) | 描述 |
---|---|---|
--Description
|
- | 服務(wù)名描述(最大 1024 字符) |
--DisplayName
|
服務(wù)名 | 服務(wù)顯示名 |
--Install
|
procrun.exe //RS//ServiceName | 安裝映像 |
--Starup
|
manual | 服務(wù)啟動(dòng)模式有兩種:auto 或 manual |
++DependsOn
|
- | 該服務(wù)所依賴的一組其他服務(wù)。用 # 或 ; 字符來(lái)分隔依賴服務(wù) |
++Environment
|
- | 利用 鍵 = 值 形式提供給服務(wù)的一組環(huán)境變量。用 # 或 ; 字符來(lái)分隔依賴這些環(huán)境變量。如果需要在一個(gè)值中使用 # 或 ; 字符,那么整個(gè)值必須以單引號(hào)閉合。 |
--User
|
- | 用于運(yùn)行可執(zhí)行文件的用戶賬戶。只用于 StarMode 取 java 或 exe 這兩種值時(shí),并且能使應(yīng)用作為一種服務(wù),運(yùn)行在沒(méi)有 LogonAsService 特權(quán)下的賬戶下。 |
--Password
|
- | 通過(guò) --User 形參設(shè)定的用戶賬戶密碼。 |
--JavaHome
|
JAVA_HOME | 設(shè)定一個(gè)與同名環(huán)境變量所不同的 JAVA_HOME |
--Jvm
|
auto | 可以使用 auto(意即從 Windows 注冊(cè)表中尋找 JVM),或者指定指向 jvm.dll 的完整路徑??梢栽诖耸褂铆h(huán)境變量擴(kuò)展。 |
++JvmOptions
|
-Xrs | 傳入 JVM 的一組選項(xiàng),格式為 -D 或 -X。通過(guò)# 或 ; 字符來(lái)分隔依賴這些選項(xiàng)(不能用于 exe 模式)。 |
--Classpath
|
- | 設(shè)定 Java 類路徑(不能用于 exe 模式) |
--JvmMs
|
- | 初始內(nèi)存池容量,以 MB 計(jì)。不能用于 exe 模式 |
--JvmMx
|
- | 內(nèi)存池最大容量,以 MB 計(jì)。不能用于 exe 模式 |
--JvmSs
|
- | 線程堆棧容量,以 KB 計(jì)。不能用于 exe 模式 |
--StartMode
|
- | 取值為 jvm、java、exe 其中之一。這些模式的含義為:
|
--StartImage
|
- | 運(yùn)行的可執(zhí)行文件。只適用于 exe 模式 |
--StartPath
|
- | start 映像可執(zhí)行文件的工作路徑 |
--StartClass
|
Main | 包含啟動(dòng)方法的類。適用于 jvm 與 java 模式,不適用于 exe 模式 |
--StartMethod
|
main | 方法名如果不同,則使用 main |
++StartParams
|
- | 傳入 StartImage 或 StartClass 的一組形參。用 # 或 ; 字符來(lái)分隔形參。 |
--StopMode
|
- | 取值為 jvm、java、exe 其中之一。更多詳細(xì)描述參看 --StartMode |
--StopImage
|
- | 運(yùn)行于 Stop 服務(wù)信號(hào)下的可執(zhí)行文件。只適用于 exe 模式 |
--StopPath
|
- | 停止映像的可執(zhí)行文件的工作路徑。不適用于 jvm 模式 |
--StopClass
|
Main | 用于 Stop 服務(wù)信號(hào)的類。適用于 jvm 和 java 類 |
--StopMethod
|
main | 方法名如果不同,則使用 main |
++StopParams
|
- | 傳入 StopImage 或 StopClass 的一組形參。用 # 或 ; 字符來(lái)分隔形參 |
--StopTimeout
|
沒(méi)有超時(shí) | 用于 procrun 等待服務(wù)優(yōu)雅地結(jié)束時(shí)的超時(shí)秒數(shù)。 |
--LogPath
|
%SystemRoot%\System32\LogFiles\Apache | 定義日志路徑。如有必要?jiǎng)t創(chuàng)建路徑。 |
--LogPrefix
|
commons-daemon | 定義服務(wù)日志文件名前綴。日志文件被創(chuàng)建在 LogPath 所定義的路徑處,帶有后綴 .YEAR-MONTH-DAY.log
|
--LogLevel
|
Info | 定義日志級(jí)別。取值為以下這些值的其中之一:Error、Info、Warn 或 Debug。(區(qū)分大小寫) |
--StdOutput
|
- | 重定向的標(biāo)準(zhǔn)輸出文件名。如果指定為 auto,則文件創(chuàng)建在 LogPath 所定義的路徑處,文件名形式為:service-stdout.YEAR-MONTH-DAY.log |
--StdError
|
- | 重定向的標(biāo)準(zhǔn)錯(cuò)誤文件名。如果指定為 auto,則文件創(chuàng)建在 LogPath 所定義的路徑處,文件名形式為:service-stderr.YEAR-MONTH-DAY.log |
--PidFile
|
- | 定義運(yùn)行中的進(jìn)程 id 的文件名。實(shí)際文件創(chuàng)建在 LogPath 目錄中。 |
最安全的手動(dòng)安裝服務(wù)的方式是利用提供的 service.bat 腳本。需要有管理員特權(quán)才能運(yùn)行該腳本。為了安裝服務(wù),必要時(shí)可以采用 /user
指定一個(gè)用戶。
注意:在 Windows Vista 或其他版本更新的 Windows 操作系統(tǒng)上,如果開(kāi)啟了用戶賬戶控制功能(UAC,User Account Control),當(dāng)腳本啟動(dòng) Tomcat8.exe 時(shí),系統(tǒng)會(huì)要求提供額外的特權(quán)。如果你想為服務(wù)安裝程序傳入附加選項(xiàng),如 PR_*
環(huán)境變量,則必須在系統(tǒng)對(duì)它們進(jìn)行全局配置,或者啟動(dòng)相關(guān)程序,利用更高級(jí)的特權(quán)來(lái)設(shè)置它們,比如:右鍵點(diǎn)擊 cmd.exe 然后選擇 “以管理員身份運(yùn)行”;在 Windows
8(或更新版本)或 Windows Server 2012(或更新版本)系統(tǒng)中,還可以在文件資源管理器中點(diǎn)擊“文件”菜單,為當(dāng)前目錄打開(kāi)一個(gè)高級(jí)命令提示符(elevated command prompt)。詳情參看問(wèn)題 56143。
Install the service named 'Tomcat8'
C:\> service.bat install
還有第 2 個(gè)可選參數(shù),可以讓你指定服務(wù)名,就像 Windows 服務(wù)所展示的那樣。
Install the service named 'MyService'
C:\> service.bat install MyService
如果使用 tomcat8.exe,你需要使用 //IS// 參數(shù)。
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
要想更新服務(wù)參數(shù),需要使用 //US// 參數(shù)。
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
如果想為服務(wù)指定可選名,需要以如下方式進(jìn)行:
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
如要?jiǎng)h除服務(wù),需使用 //DS// 參數(shù)。
如果服務(wù)正在運(yùn)行,則會(huì)先停止然后再刪除。
Remove the service named 'Tomcat8'
C:\> tomcat8 //DS//Tomcat8
為服務(wù)指定可選名的方式如下:
Remove the service named 'MyService'
C:\> tomcat8 //DS//MyService
想要在控制臺(tái)模式下運(yùn)行服務(wù),需使用 //TS// 參數(shù)。通過(guò)按下 CTRL+C or CTRL+BREAK 使服務(wù)關(guān)閉。如果將 tomcat8.exe 重命名為 testservice.exe,那么只需執(zhí)行 testservice.exe,就會(huì)默認(rèn)執(zhí)行這個(gè)命令模式了。
Run the service named 'Tomcat8' in console mode
C:\> tomcat8 //TS//Tomcat8 [additional arguments]
Or simply execute:
C:\> tomcat8
Tomcat 支持安裝多個(gè)實(shí)例。一個(gè) Tomcat 安裝可以帶有多個(gè)實(shí)例,它們可以在不同 IP/端口組合上運(yùn)行,或者是以多個(gè) Tomcat 版本運(yùn)行,每個(gè)版本都一個(gè)或多個(gè)實(shí)例,在不同的不同 IP/端口組合上運(yùn)行。
每個(gè)實(shí)例的文件夾都應(yīng)具有如下目錄結(jié)構(gòu):
conf 目錄最起碼應(yīng)該包含 CATALINA_HOME\conf\
中下列文件的副本。任何沒(méi)有復(fù)制過(guò)或編輯過(guò)的文件,將直接從 CATALINA_HOME\conf
中獲取。比如,CATALINA_BASE\conf
中的文件就會(huì)覆蓋 CATALINA_HOME\conf
的默認(rèn)文件。
必須編輯 CATALINA_BASE\conf\server.xml,指定一個(gè)唯一的 IP/端口用于實(shí)例偵聽(tīng)。找到包含 <Connector port="8080" ...
的代碼行,添加一個(gè)地址屬性,并且(或者)更新端口號(hào),以便指定一個(gè)唯一的 IP/端口組合。
要想安裝一個(gè)實(shí)例,首先將 CATALINA_HOME 環(huán)境變量設(shè)置為 Tomcat 安裝目錄名稱。然后創(chuàng)建一個(gè)第二個(gè)環(huán)境變量 CATALINA_BASE,并將其指向?qū)嵗募A。最后運(yùn)行 service install
命令指定服務(wù)名稱。
set CATALINA_HOME=c:\tomcat_8
set CATALINA_BASE=c:\tomcat_8\instances\instance1
service install instance1
修改服務(wù)設(shè)置,需要運(yùn)行 tomcat8w //ES//instance1。
對(duì)于附加實(shí)例,創(chuàng)建附加實(shí)例文件夾,更新 CATALINA_BASE
環(huán)境變量,然后再次安裝服務(wù)。
set CATALINA_BASE=c:\tomcat_8\instances\instance2
service install instance2
更多建議: