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