Tomcat Windows 服務(wù)

2022-03-03 14:08 更新

Tomcat 服務(wù)應(yīng)用

Tomcat8 是一個(gè)服務(wù)應(yīng)用,能使 Tomcat 8 以 Windows 服務(wù)的形式運(yùn)行。

Tomcat 監(jiān)控應(yīng)用

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)托盤中。

命令行實(shí)參

命令行指令格式為://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)模式有兩種:automanual
++DependsOn - 該服務(wù)所依賴的一組其他服務(wù)。用 #; 字符來(lái)分隔依賴服務(wù)
++Environment - 利用 鍵 = 值 形式提供給服務(wù)的一組環(huán)境變量。用 #; 字符來(lái)分隔依賴這些環(huán)境變量。如果需要在一個(gè)值中使用 #; 字符,那么整個(gè)值必須以單引號(hào)閉合。
--User - 用于運(yùn)行可執(zhí)行文件的用戶賬戶。只用于 StarModejavaexe 這兩種值時(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 其中之一。這些模式的含義為:
  • jvm——進(jìn)程內(nèi)啟動(dòng) Java。依賴 jvm.dll,參看 --Jvm 形參相關(guān)描述
  • Java——與 exe 類似,但會(huì)自動(dòng)使用默認(rèn)的 java 可執(zhí)行文件。也即 %JAVA_HOME%\bin\java.exe。確保正確設(shè)定 JAVA_HOME,或使用 --JavaHome 來(lái)提供正確的位置。如果都未設(shè)定,procrun 會(huì)從注冊(cè)表中尋找默認(rèn)的 JDK(不是 JRE)
  • exe——以獨(dú)立進(jìn)程方式運(yùn)行映像
  • --StartImage - 運(yùn)行的可執(zhí)行文件。只適用于 exe 模式
    --StartPath - start 映像可執(zhí)行文件的工作路徑
    --StartClass Main 包含啟動(dòng)方法的類。適用于 jvmjava 模式,不適用于 exe 模式
    --StartMethod main 方法名如果不同,則使用 main
    ++StartParams - 傳入 StartImageStartClass 的一組形參。用 #; 字符來(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)的類。適用于 jvmjava
    --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、WarnDebug。(區(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 目錄中。

    安裝服務(wù)

    最安全的手動(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ù)

    要想更新服務(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

    刪除服務(wù)

    如要?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  

    調(diào)試服務(wù)

    想要在控制臺(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

    多個(gè)實(shí)例

    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
    • logs
    • temp
    • webapps
    • work

    conf 目錄最起碼應(yīng)該包含 CATALINA_HOME\conf\ 中下列文件的副本。任何沒(méi)有復(fù)制過(guò)或編輯過(guò)的文件,將直接從 CATALINA_HOME\conf 中獲取。比如,CATALINA_BASE\conf 中的文件就會(huì)覆蓋 CATALINA_HOME\conf 的默認(rèn)文件。

    • server.xml
    • web.xml

    必須編輯 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
    以上內(nèi)容是否對(duì)您有幫助:
    在線筆記
    App下載
    App下載

    掃描二維碼

    下載編程獅App

    公眾號(hào)
    微信公眾號(hào)

    編程獅公眾號(hào)