Tomcat8 是一個服務應用,能使 Tomcat 8 以 Windows 服務的形式運行。
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 的完整路徑??梢栽诖耸褂铆h境變量擴展。 |
++JvmOptions |
-Xrs |
傳入 JVM 的一組選項,格式為 -D 或 -X。通過# 或 ; 字符來分隔依賴這些選項(不能用于 exe 模式)。 |
--Classpath |
- |
設定 Java 類路徑(不能用于 exe 模式) |
--JvmMs |
- |
初始內存池容量,以 MB 計。不能用于 exe 模式 |
--JvmMx |
- |
內存池最大容量,以 MB 計。不能用于 exe 模式 |
--JvmSs |
- |
線程堆棧容量,以 KB 計。不能用于 exe 模式 |
--StartMode |
- |
取值為 jvm、java、exe 其中之一。這些模式的含義為: · jvm——進程內啟動 Java。依賴 jvm.dll,參看 --Jvm 形參相關描述 · Java——與 exe 類似,但會自動使用默認的 java 可執行文件。也即 %JAVA_HOME%\bin\java.exe。確保正確設定 JAVA_HOME,或使用 --JavaHome 來提供正確的位置。如果都未設定,procrun 會從注冊表中尋找默認的 JDK(不是 JRE) · 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)。
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 目錄最起碼應該包含 CATALINA_HOME\conf\ 中下列文件的副本。任何沒有復制過或編輯過的文件,將直接從 CATALINA_HOME\conf 中獲取。比如,CATALINA_BASE\conf 中的文件就會覆蓋 CATALINA_HOME\conf 的默認文件。
必須編輯 CATALINA_BASE\conf\server.xml,指定一個唯一的 IP/端口用于實例偵聽。找到包含
要想安裝一個實例,首先將 CATALINA_HOME 環境變量設置為 Tomcat 安裝目錄名稱。然后創建一個第二個環境變量 CATALINA_BASE,并將其指向實例文件夾。最后運行 service install 命令指定服務名稱。
set CATALINA_HOME=c:\tomcat_8set 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