Tomcat Windows 服務(wù)

2022-03-03 14:08 更新

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

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

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

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

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

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

    如要刪除服務(wù),需使用 //DS// 參數(shù)。
    如果服務(wù)正在運行,則會先停止然后再刪除。

    Remove the service named 'Tomcat8'
    C:\> tomcat8 //DS//Tomcat8

    為服務(wù)指定可選名的方式如下:

    Remove the service named 'MyService'
    C:\> tomcat8 //DS//MyService  

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

    想要在控制臺模式下運行服務(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
    • logs
    • temp
    • webapps
    • work

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

    • server.xml
    • web.xml

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

    掃描二維碼

    下載編程獅App

    公眾號
    微信公眾號

    編程獅公眾號