利用Jsvc把Java程序嵌入到Linux服務中去

           來源:賽迪網    作者:korn

          在linux上以服務的方式啟動java程序

          1.安裝jsvc

          在tomcat的bin目錄下有一個jsvc.tar.gz的文件,進入tomcat的bin目錄下

          #tar xvfz jsvc.tar.gz

          #cd jsvc-src

          #sh support/buildconf.sh

          #chmod 755 configure

          #./configure --with-java=/usr/local/java (改成你的JDK的位置)

          #make

          2.編寫服務啟動類

          package com.sohu.jsvc.test;
                                  public class TestJsvc {
                                  public static void main(String args[]) {
                                  System.out.println("execute main method!");
                                  }
                                  public void init() throws Exception {
                                  System.out.println("execute init method!");
                                  }
                                  public void init(String[] args) throws Exception{
                                  System.out.println("execute init(args) method");
                                  }
                                  public void start() throws Exception {
                                  System.out.println("execute start method!");
                                  }
                                  public void stop() throws Exception {
                                  System.out.println("execute stop method!");
                                  }
                                  public void destroy() throws Exception{
                                  System.out.println("execute destroy method!");
                                  }
                                  }

          main方法可以去掉,但是init(String[] args),start(),stop(),destroy()方法不能少,服務在啟動時會先調用init(String[] args)方法

          然后調用start()方法,在服務停止是會首先調用stop()方法,然后調用destroy() 方法.

          3.把這個類打包成testjsvc.jar 放到/test目錄下

          4.編寫啟動服務的腳本 myjsvc

          #!/bin/sh
                                  # myjsvc This shell script takes care of starting and stopping
                                  #
                                  # chkconfig: - 60 50
                                  # description: tlstat stat is a stat data daemon.
                                  # processname: myjsvc
                                  # Source function library.
                                  . /etc/rc.d/init.d/functions
                                  RETVAL=0
                                  prog="MYJSVC"
                                  # jdk的安裝目錄
                                  JAVA_HOME=/usr/java/jdk1.5.0_15
                                  #應用程序的目錄
                                  MYJSVC_HOME=/test
                                  #jsvc所在的目錄
                                  DAEMON_HOME=/usr/local/tomcat5/bin/jsvc-src
                                  #用戶
                                  MYJSVC_USER=root
                                  # for multi instances adapt those lines.
                                  TMP_DIR=/var/tmp
                                  PID_FILE=/var/run/tlstat.pid
                                  #程序運行是所需的jar包,commons-daemon.jar是不能少的
                                  CLASSPATH=\
                                  /test/testjsvc.jar:\
                                  /usr/local/tomcat5/bin/commons-daemon.jar:\
                                  case "$1" in
                                  start)
                                  #
                                  # Start TlStat Data Serivce
                                  #
                                  $DAEMON_HOME/jsvc \
                                  -user $MYJSVC_USER \
                                  -home $JAVA_HOME \
                                  -Djava.io.tmpdir=$TMP_DIR \
                                  -wait 10 \
                                  -pidfile $PID_FILE \
                                  #控制臺的輸出會寫到tlstat.out文件里
                                  -outfile $MYJSVC_HOME/log/myjsvc.out \
                                  -errfile '&1' \
                                  -cp $CLASSPATH \
                                  #服務啟動類
                                  com.sohu.jsvc.test.TestJsvc
                                  #
                                  # To get a verbose JVM
                                  #-verbose \
                                  # To get a debug of jsvc.
                                  #-debug \
                                  exit $?
                                  ;;
                                  stop)
                                  #
                                  # Stop TlStat Data Serivce
                                  #
                                  $DAEMON_HOME/jsvc \
                                  -stop \
                                  -pidfile $PID_FILE \
                                  com.sohu.jsvc.test.TestJsvc
                                  exit $?
                                  ;;
                                  *)
                                  echo "Usage myjsvc start/stop"
                                  exit 1;;
                                  esac

          5. 把myjsvc文件拷貝到/etc/init.d/目錄下

          6. #chmod -c 777 /etc/init.d/myjsvc

          7. 添加服務

          #chkconfig --add myjsvc

          #chkconfig --level 345 myjsvc on

          8. 完成,啟動服務

          #service myjsvc start

          你可以從/test/log/myjsvc.out文件里看到如下信息:

          execute init(args) method

          execute start method

          #service myjsvc stop

          你會發現/test/log/myjsvc.out文件里會增加如下信息

          execute stop method

          execute destroy method

          并且在系統重啟時會自動啟動myjsvc服務

          好了,一個簡單的 liunx服務就寫好了,你可以在TestJsvc的init(),start(),stop(),destroy()方法里添加你的業務,做你想做的事。

          posted on 2008-08-01 13:04 zhangy 閱讀(154) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 漳浦县| 南部县| 镇坪县| 油尖旺区| 闻喜县| 石门县| 太保市| 康马县| 定兴县| 蒙山县| 苍溪县| 宾川县| 佛学| 平泉县| 永吉县| 西盟| 镇沅| 筠连县| 团风县| 黄石市| 古田县| 辽中县| 新营市| 荣昌县| 佳木斯市| 卓资县| 区。| 阜南县| 班戈县| 扎鲁特旗| 宣武区| 厦门市| 衡阳县| 措美县| 东光县| 博野县| 崇礼县| 乌拉特后旗| 三江| 天镇县| 突泉县|