使用apache daemon让java程序在unix系统上以服务方式运行
来源:互联网 发布:linux查看检测网络命令 编辑:程序博客网 时间:2024/04/18 10:35
通过使用apache_commons_daemon,可以让Java程序在unix系统上以服务器的方式运行。
当然,通过wrapper也是可以达到这样的目的,wrapper还可以指定java应用中用到的第三方jar目录,由wrapper统一加载,很方便。详细使用方法见“wrapper在unix下的使用”。
apache daemon的安装与使用
1、运行环境:
unix 64bit
jre 1.6.x
apache commons daemon 10.15,daemon较低的版本在安装上会有些差别,如:无法在64位的unix系统上找到libcap*.so文件等
而10.15版本在这方面增加了一些校验,使用起来比较方便。
2、安装jsvc
jsvc是apache commons daemon自带的,通过jsvc我们才可以达到java程序在unix系统上以service的方式运行,如:tomcat
首先,我们先下载apache commons daemon jar包和源码,下载地址:
http://commons.apache.org/proper/commons-daemon/download_daemon.cgi
源码中包含了jsvc和一些demo。
开始安装:
#cd /home/jsvc/
#tar zxvf commons-daemon-1.0.15-src.tar.gz
#cd commons-daemon-1.0.15-src/native/unix
#chmod 755 ./support/buildconf.sh
#./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已经安装成功,接下来我们编写一个java app
3、编写一个java demo:
package com.jason.jsvc;import org.apache.commons.daemon.Daemon;import org.apache.commons.daemon.DaemonContext;import org.apache.commons.daemon.DaemonInitException;/** * @date 2013-6-21 * @author Jason */public class JsvcTest implements Daemon {/* (non-Javadoc) * @see org.apache.commons.daemon.Daemon#destroy() */@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("JsvcTest destory method...");}/* (non-Javadoc) * @see org.apache.commons.daemon.Daemon#init(org.apache.commons.daemon.DaemonContext) */@Overridepublic void init(DaemonContext ctx) throws DaemonInitException, Exception {// TODO Auto-generated method stubSystem.out.println("JsvcTest init method..."+ctx.toString());}/* (non-Javadoc) * @see org.apache.commons.daemon.Daemon#start() */@Overridepublic void start() throws Exception {// TODO Auto-generated method stubSystem.out.println("JsvcTest start method...");}/* (non-Javadoc) * @see org.apache.commons.daemon.Daemon#stop() */@Overridepublic void stop() throws Exception {// TODO Auto-generated method stubSystem.out.println("JsvcTest stop method...");}}
将该demo打包成jscv_test.jar,并连同commons-daemon-10.15.jar一起放到:/home/jsvc/app/目录下备用。
4、编写jsvc脚本
vi /etc/init.d/jsvc
#!/bin/sh## chkconfig: - 60 50# description: test a daemon.# processname: jsvc# Source function library.. /etc/rc.d/init.d/functionsRETVAL=0prog="jsvc"JAVA_HOME=/usr/java/jdk1.6.0_35APP_HOME=/home/jsvc/app#jsvc所在的目录DAEMON_HOME=/home/jsvc/native/unixAPP_USER=rootTMP_DIR=/home/jsvc/app/tmpPID=/home/jsvc/app/jsvc_stat.pidCLASSPATH=$CLASSPATH:/home/jsvc/app/jsvc_test.jar:/home/jsvc/app/commons-daemon-1.0.15.jarcase "$1" instart)## 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## To get a verbose JVM#-verbose \# To get a debug of jsvc.#-debug \exit $?;; stop)## Stop Serivce#$DAEMON_HOME/jsvc -stop -pidfile $PID com.jason.jsvc.JsvcTestexit $?;; *)echo "Usage myjsvc start/stop"exit 1;;esac
5、为unix添加服务
chmod 777 /etc/init.d/jsvc
chkconfig --add jsvc
chkconfig --list | grep jsvc
chkconfig --level 345 jsvc on
6、启动与关闭jsvc服务
service jsvc start
service jsvc stop
查看脚本中指定的日志目录,会发现一些日志输出:
JsvcTest init method...org.apache.commons.daemon.support.DaemonLoader$Context@6d9efb05
JsvcTest start method...
JsvcTest stop method...
JsvcTest destory method...
- 使用apache daemon让java程序在unix系统上以服务方式运行
- 使用apache daemon让java程序在unix系统上以服务方式运行
- 在Ubuntu上以服务方式运行Java程序
- 使用Apache Commons Daemon 来实现Jetty7 以Windows 服务方式运行
- 在linux上以服务的方式启动java程序
- 在windows上以服务方式运行Redis服务
- 在Windows上以服务方式运行 MSOPenTech/Redis
- 在Windows上以服务方式运行 MSOPenTech/Redis
- 如何让程序以root权限运行在IOS上
- 让java程序在linux上运行
- 让Java程序作为linux的Daemon后台运行 和 使用Java Service Wrapper将java程序作为linux服务并且开机自动启动
- [ZZ]如何将程序以Daemon方式运行?
- 以服务方式运行Apache for Windows
- 以服务方式运行Apache for Windows
- 通过编程来让企业服务以服务程序方式运行
- 通过编程来让企业服务以服务程序方式运行
- 通过编程来让企业服务以服务程序方式运行
- 通过编程来让企业服务以服务程序方式运行
- Linux的自动执行程序cron和crontab
- VC中基于ADO访问数据库
- java myeclipse怎么往main方法传参数啊
- 复合数据对象
- java for循环的几种写法
- 使用apache daemon让java程序在unix系统上以服务方式运行
- jQuery 选择器
- 页面爬虫(获取其他页面HTML)加载到自己页面
- Android Layout之一:FrameLayout
- 电话号码的快速查找
- Ant常见任务
- 数据缓存
- Linux文件系统比较
- NS节点及其配置[转载]