前言
Java Service Wrapper是Tanuki Software的一個產品,可以將Java應用注冊成Windows或Linux服務,使其可以隨系統開機啟動,同時可以監控Java應用的狀態,使其在出異常狀況時自動啟動,其具體特性請參考官方文檔Overview of Wrapper features ,本文記錄了筆者在官方文檔指導下在Linux環境下用Java Serivice Wrapper配置Tomcat應用的實踐。
前提
安裝部署
Java安裝到/usr/local/java8/ 具體步驟略
Tomcat安裝到/usr/local/tomcat/ 具體步驟略
將Java Web應用打成war包,拖到tomcat/webapps/下 具體步驟略
解壓縮Java Service Wrapper壓縮包到/usr/local/wrapper/,開始安裝wrapper文件:
bin目錄
復制以下文件到tomcat/bin目錄:
/usr/local/wrapper/bin/wrapper /usr/local/wrapper/src/bin/sh.script.in
腳本文件sh.script.in重命名為你的應用名,如ABC。
用編輯器打開ABC,找到APP_NAME,將值改成與文件名一致,APP_LONG_NAME的值改為應用長名。
APP_NAME="ABC" APP_LONG_NAME="ABC Application Server"
保存關閉文件,給腳本文件ABC授執行權限
lib目錄
復制以下文件到tomcat/lib目錄:
/usr/local/wrapper/lib/libwrapper.so
/usr/local/wrapper/lib/wrapper.jar
conf目錄
復制wrapper.conf到tomcat/conf目錄,編輯wrapper.conf文件:
//配置java路徑,根據具體環境配置,可以用絕對路徑,也可以使用環境變量 set.JAVA_HOME=/usr/local/java8/ set.CATALINA_HOME=/usr/local/tomcat set.CATALINA_BASE=/usr/local/tomcat wrapper.java.command=/usr/local/java8/bin/java //JVM參數。將應用正常啟動時所配置的參數復制過來。具體步驟: // 1.命令行啟動應用 // 2.用ps –ef | grep tomcat找到應用進程 // 3.復制該進程的參數,將-D開頭的參數逐條配置到下面 wrapper.java.additional.1=-Djava.util.logging.config.file=%CATALINA_HOME%/conf/logging.properties wrapper.java.additional.2=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager wrapper.java.additional.3=-Djava.endorsed.dirs=%CATALINA_HOME%/common/endorsed wrapper.java.additional.4=-Dcatalina.base=%CATALINA_BASE% wrapper.java.additional.5=-Dcatalina.home=%CATALINA_HOME% wrapper.java.additional.6=-Djava.io.tmpdir=%CATALINA_BASE%/temp //類路徑。與獲取JVM參數方式相同,將類路徑逐條配置到下面 wrapper.java.classpath.1=%CATALINA_HOME%/bin/bootstrap.jar wrapper.java.classpath.2=%CATALINA_HOME%/bin/tomcat-juli.jar wrapper.java.classpath.3=%CATALINA_HOME%/lib/wrapper.jar //lib路徑。 wrapper.java.library.path.1=%CATALINA_HOME%/lib //Wrapper集成主類。有4種集成方式,適合tomcat這樣啟動使用一個類, //停止使用另一個類的應用的是WrapperStartStopApp類 wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp //tomcat應用參數,無需修改 wrapper.app.parameter.1=org.apache.catalina.startup.Bootstrap wrapper.app.parameter.2=1 wrapper.app.parameter.3=start wrapper.app.parameter.4=org.apache.catalina.startup.Bootstrap wrapper.app.parameter.5=TRUE wrapper.app.parameter.6=1 wrapper.app.parameter.7=stop
安裝服務
進入/usr/local/tomcat/bin/目錄,修改腳本文件ABC,設置隨系統啟動
//設置服務隨系統啟動 USE_UPSTART=true
保存退出,以root權限執行
$ sudo ./ABC install
應用將注冊為upstart服務
Notice: 只對Wrapper 版本3.4.0之后有效
測試
執行命令
service start | stop | restart | status
之后到tomcat/logs/目錄下查看wrapper.log,沒有異常就是成功。
重啟機器,登錄后查看進程里有ABC在運行,證明隨系統啟動正常,或者訪問Java Web應用,證明應用正常啟動。