Apache Commons Daemon 使用简介

夔博
2023-12-01

Apache Commons Daemon 使用简介

 

1. 简介

Commons Daemon可以将一个普通的java应用程序作为linuxwindows的后台服务,以daemon方式运行。例如Tomcat就是使用这个项目来实现作为LinuxWindows的服务启动/停止的。

它分为两个部分,一部分是用C写的,与操作系统交互,另一部分是用java写的,提供Daemon接口。Apache commons daemonWin32Unix平台都有支持,Win32平台使用procrun, Unix平台使用jsvc。本文主要介绍jsvc的安装和使用。

 

2. 使用

2.1 安装jsvc

首先,下载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

 

至此jsvc已经安装成功。

 

2.2 编写一个java demo

package com.jason.jsvc;

 

import org.apache.commons.daemon.Daemon;

import org.apache.commons.daemon.DaemonContext;

import org.apache.commons.daemon.DaemonInitException;

 

public class JsvcTest 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...");

}

}

将该demo打包成jscv_test.jar,放至/home/jsvc/app目录。

 

2.3 编写jsvc脚本

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=/home/jsvc/app

 

#jsvc所在的目录

DAEMON_HOME=/home/jsvc/native/unix

 

APP_USER=root

TMP_DIR=/home/jsvc/app/tmp

PID=/home/jsvc/app/jsvc_stat.pid

CLASSPATH=$CLASSPATH:/home/jsvc/app/jsvc_test.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.jason.jsvc.JsvcTest

exit $?

;;

 

*)

echo "Usage myjsvc start/stop"

exit 1;;

 

esac


 

2.4 为unix添加服务

chkconfig --add jsvc

chkconfig --list | grep jsvc

chkconfig --level 345 jsvc on

 

2.5 启动和关闭jsvc服务

service jsvc start

service jsvc stop

 

参考:

1.官网 http://commons.apache.org/proper/commons-daemon/index.html

2.使用教程 http://blog.csdn.net/jason5186/article/details/9146167

 类似资料: