本文轉自https://www.cnblogs.com/zcy_soft/p/3738947.html,寫的非常好,珍藏一下
1. wrapper的意思?
wrapper在此處理解為“包裝”。

2. java service wrapper的作用?
在實際開發過程中很多模塊需要獨立運行,他們並不會以web形式發布,傳統的做法是將其壓縮為jar包獨立運行,這種形式簡單易行也比較利於維護,但是一旦服務器重啟或出現異常時,程序往往無法自行修復或重啟。解決服務器重啟的傳統做法是編寫一段shell腳本隨服務器啟動而運行,但是這樣做只是治標,那么我們想尋求一種“治本”的方式該怎么辦呢?Java Service Wrapper通過將java程序包裝成為系統服務,輕松的幫我們解決了該問題。
Java Service Wrapper就輕松而簡單的為我們解決了這些問題。"Java Service Wrapper":顧名思義,它用於將我們的Java程序包裝成系統服務,這樣就可以隨着系統的運行而自動運行。當然Java Service Wrapper(下面簡稱Wrapper)的功能絕不僅於此。
4. wrapper下載與使用
https://wrapper.tanukisoftware.com/doc/english/download.jsp

通過下載頁面我們可以看到Wrapper幾乎支持所有的系統環境,說明Wrapper在這方面還是很下工夫的,目前最新版本為3.5.20,我們選擇Linux x86版本下載,解壓后目錄組成
如下圖所示:

為了更直觀的了解Wrapper的目錄及文件結構,可以通過"tree"命令列出Wrapper的所有文件樹,cmd控制台下輸入命令:

以下是官方給出的一些Wrapper的優點:
(1) 使用我們的產品無須在你的程序中添加任何額外的代碼。
(2) 當你的程序或JVM出現問題時會自動響應事先定制的策略。
(3) 當出現問題時會及時進行通知。
(4) 完善的日志記錄功能可以更好為您提供支持。
(5) 在不同的系統上你可以指定一個標准的流程相同流程,也就是說相同的程序可以不必修改即運行於不同系統。
(6) 可以將你的應用安裝成windows或unix的服務或守護進程。
看到Wrapper有這么多好處,那么我們就通過Wrapper自帶的示例程序來進一步了解Wrapper吧:
1. 創建服務工作目錄,以操作系統為Linux,目錄結構為usr/local/wrapper為例,按照上面的目錄結構,在其下創建"bin","conf","lib","logs"這四個相同名稱的文件夾。
2. 將配置及程序文件復制至相應目錄(也就是上面標★的文件);
(1) bin 目錄下的wrapper 文件復制到usr/local/wrapper/bin下。
(2) src\bin 目錄下的sh.script.in 文件復制到usr/local/wrapper/bin下,並將.in后綴名刪除並修改名稱,修改后為javaService.script。
(3) conf 目錄下的wrapper.conf 文件復制到usr/local/wrapper/conf下。
(4) lib 目錄下的wrapper.jar 和libwrapper.so 文件復制到usr/local/wrapper/lib下。
注:以上是正式環境所需文件的配置方式,這里我們需要運行Wrapper自帶的demo程序,所以需要將demoapp,demoapp.conf,wrapperdemo.jar 這三個文件復制到相應目錄。
3. 進入bin目錄執行以下命令:

接下來會顯示很多提示,最終顯示如下頁面:

出現此頁面證明你的程序已經運行成功了,恭喜!
如果啟動失敗,我們可以查看logs日志內容,如下:

從日志內容可以查看程序及服務的運行狀態,Wrapper日志采用此種格式:類型 | 擁有者 | 時間 | 具體內容
日志內容顯示我們的Linux系統沒有安裝圖形界面或者根本沒有顯卡。
注:這里需要說明一下,Wrapper運行首先需要Java運行環境支持,所以在使用Wrapper前請先確認已安裝好了Java
下面我們來嘗試一下無參數調用服務的方式,如:

兩者的提示相同,都為:

原來Wrapper提供了很多種參數的選擇,如:start為啟動,stop為停止。下面為參數的詳細解釋:

我們還發現單獨運行wrapper命令時的提示內容與前面兩者不同,如下所示:

因為wrapper是Wrapper運行的主程序也是核心,他無法單獨運行需要通過src/bin中的sh.script.in這個shell腳本調用,這個文件的使用我們之后會講到。
運行wrapper可以按如上提示添加參數,如:./wrapper -c wrapper.properties
以上就是對Wrapper的一個整體認識,希望此文可以幫助大家更快的上手並使用Wrapper,之后幾篇文章會詳細講解Wrapper的配置及定制自己的應用。
