转自:
下文笔者讲述Apache Commons Daemon的功能简介说明,如下所示
Apache Commons Daemon的功能
用于将一个普通的java应用程序编程系统的后台服务 Commons Daemon框架由两部分组成: 一部分由C语言编写 一部分由java语言编写,并提供Daemon接口
例:
安装apache commons daemon
首先,下载apache commons daemon的jar包和源码 下载地址: http://commons.apache.org/proper/commons-daemon/download_daemon.cgi。 开始安装: #tar -zxvf commons-daemon-1.0.15-src.tar.gz #cd commons-daemon-1.0.15-src/src/native/unix #./support/buildconf.sh ./support/buildconf.sh: configure script generated successfully # ./configure --with-java=/usr/java/jdk1.6.0_35 ..... *** All done *** Now you can issue "make" #make 通过以上步骤,则完成apache commons daemon的安装
java示例展示daemon
package com.java265; import org.apache.commons.daemon.Daemon; import org.apache.commons.daemon.DaemonContext; import org.apache.commons.daemon.DaemonInitException; public class TestClass implements Daemon { @Override public void destroy() { System.out.println("JsvcTest destory method..."); } @Override public void init(DaemonContext ctx) throws DaemonInitException, Exception { System.out.println("JsvcTest init method..."+ctx.toString()); } @Override public void start() throws Exception { System.out.println("JsvcTest start method..."); } @Override public void stop() throws Exception { System.out.println("JsvcTest stop method..."); } } 将以上程序打包为一个jar包,放入目录/opt/app下
编写sh脚本
vi /etc/init.d/jsvc #!/bin/sh # chkconfig: - 60 50 . /etc/rc.d/init.d/functions RETVAL=0 prog="jsvc" JAVA_HOME=/usr/java/jdk1.6.0_35 APP_HOME=/opt/app #jar所在的目录 DAEMON_HOME=//opt/app/native/unix APP_USER=root TMP_DIR=/opt/app/tmp PID=/opt/app/jsvc_stat.pid CLASSPATH=$CLASSPATH:/opt/app/TestClass.jar case "$1" in start) #Start Serivce $DAEMON_HOME/jsvc -user $APP_USER -home $JAVA_HOME -Djava.io.tmpdir=$TMP_DIR -wait 5000 -pidfile $PID -outfile $APP_HOME/log/jsvc.out -errfile '&1' -cp $CLASSPATH com.jason.jsvc.JsvcTest exit $? ;; stop) #Stop Serivce $DAEMON_HOME/jsvc -stop -pidfile $PID com.java265.TestClass exit $? ;; *) echo "Usage myjsvc start/stop" exit 1;; esac
为unix添加服务
chkconfig --add jsvc chkconfig --list | grep jsvc chkconfig --level 345 jsvc on
启动和关闭jsvc服务
service jsvc start service jsvc stop