qiyadeng

          專注于Java示例及教程
          posts - 84, comments - 152, trackbacks - 0, articles - 34

          因?yàn)樾枰獙?duì)網(wǎng)絡(luò)環(huán)境進(jìn)行監(jiān)控,做了個(gè)Java程序在linux服務(wù)器上運(yùn)行。但是每次重新啟動(dòng)的時(shí)候都要手動(dòng)的運(yùn)行,這樣就不太現(xiàn)實(shí)。所以想到把Java程序做成像Windows的系統(tǒng)服務(wù)那樣,開機(jī)就會(huì)自動(dòng)在后臺(tái)運(yùn)行。以前使用過一個(gè)工具http://javaservice.objectweb.org/,可以把Java程序注冊(cè)成為Windows的系統(tǒng)服務(wù),而且使用起來很簡單,但是遺憾的是該工具不能注冊(cè)linux的后臺(tái)服務(wù)。所以不得不另外尋找工具。

           

             最后找到了JavaService Wrapper(http://wrapper.tanukisoftware.org/doc/english/introduction.html),該工具能在很多中平臺(tái)下面注冊(cè)為系統(tǒng)服務(wù)(查看支持平臺(tái))。該工具使用方法有三種模式,我用的是第一種WrapperSimpleApp幫助類,另外的兩種方式都需要在原來的程序上進(jìn)行適當(dāng)?shù)木幋a。下面就用我的程序NetWatchDog為例子說明下大概的配置步驟。(其實(shí)文檔中已經(jīng)用Jboss進(jìn)行了演示)

           

          1.建立一個(gè)目錄名為NetWatchDog,并在該目錄下建立bin,lib,conf,logs目錄。以下把NetWatchDog目錄稱為$DOG_HOME。

          2.把下載來的文件解壓,把$WRAPPER_HOME/bin/wrapper,$WRAPPER_HOME/src/bin/sh.script.in文件copy到$DOG_HOME/bin目錄中。

          3.把sh.script.in文件該名為你的服務(wù)名稱,這里改為NetWatchDog。

          4.編輯NetWatchDog,把Application的相關(guān)信息改為如下:

          APP_NAME="NetWatchDog"
          APP_LONG_NAME="NetWatchDog Application"

          5.把你的程序的打包成jar文件,拷貝到$DOG_HOME/lib目錄下,并把$WRAPPER_HOME/lib/libwrapper.so,$WRAPPER_HOME/lib/wrapper.jar文件也拷貝到$DOG_HOME/lib目錄下面。

          6.這步比較重要是成敗的關(guān)鍵,把$WRAPPER_HOME/conf/wrapper.conf文件拷貝到$DOG_HOME/conf目錄下(文檔上面說的是wrapper.conf.in文件,但是我下載來的文件就是wrapper.conf,所以步需要改名的)。

          7.編輯wrapper.conf文件:

          #java命令的位置

          wrapper.java.command=%JAVA_HOME%/bin/java

          #wrapper的主類

          wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

          #java classpath

          wrapper.java.classpath.1=../lib/wrapper.jar
          wrapper.java.classpath.2=%JAVA_HOME%/jre/lib/ext/log4j-1.2.13.jar
          wrapper.java.classpath.3=%JAVA_HOME%/jre/lib/ext/activation.jar
          wrapper.java.classpath.4=%JAVA_HOME%/jre/lib/ext/commons-email-1.0.jar
          wrapper.java.classpath.5=%JAVA_HOME%/jre/lib/ext/mail.jar
          wrapper.java.classpath.6=../lib/NetWatchDog.jar
          #你的程序的主類,將作為wrapper的參數(shù)

          wrapper.app.parameter.1=qiya.deng.main.Main

          8.這樣基本就大功告成了,現(xiàn)在可以運(yùn)行命令./NetWatchDog  start,如果提示權(quán)限不夠就用chmod 755 NetWatchDog命令改變權(quán)限。如果沒出現(xiàn)錯(cuò)誤提示,這樣基本上就正確了。
          另外Windwos版本可以參考:http://blog.chinaunix.com/u/1677/?u=http://blog.chinaunix.com/u/1677/showart.php?id=67084

          Feedback

          # re: 讓Java程序作為linux的Daemon后臺(tái)運(yùn)行   回復(fù)  更多評(píng)論   

          2007-12-22 12:12 by teasp
          樓主,你好。我自己在linux下試驗(yàn)的時(shí)候發(fā)現(xiàn)用%JAVA_HOME%不行,必須改成java home的絕對(duì)路徑才行,不知道是什么原因。

          # re: 讓Java程序作為linux的Daemon后臺(tái)運(yùn)行   回復(fù)  更多評(píng)論   

          2008-04-11 19:34 by Lordofthering
          確認(rèn)你已經(jīng)設(shè)置了JAVA_HOME環(huán)境變量。

          # re: 讓Java程序作為linux的Daemon后臺(tái)運(yùn)行   回復(fù)  更多評(píng)論   

          2012-05-23 18:06 by enzhouguo
          樓主啊 你好實(shí)用java service wrapper 好像不是免費(fèi)開源的,試用一個(gè)月。
          我現(xiàn)在好頭疼,找commons daemon 配置又不靈活

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 株洲市| 广安市| 朝阳区| 大化| 郑州市| 绥德县| 中西区| 珲春市| 兰西县| 山东省| 贡觉县| 盐亭县| 商丘市| 明水县| 清镇市| 玉环县| 定日县| 文水县| 安岳县| 洪洞县| 炎陵县| 临洮县| 金寨县| 屯昌县| 沾益县| 固安县| 佛冈县| 万源市| 青海省| 威宁| 舟山市| 荣昌县| 昭觉县| 景宁| 灵丘县| 柘荣县| 武邑县| 合水县| 安乡县| 宁海县| 南投县|