· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

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

发布时间:2008.06.27 06:30     来源:赛迪网    作者: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()方法里添加你的业务,做你想做的事。

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· JSP动态网站环境搭建应用中详细步骤介绍 (06-26) · 在Linux下发布程序需要注意版本的软件包 (06-26)
· Linux系统下比较两个文件并删除相同部分 (06-26) · 测试Linux平台Inode使用情况的过程命令 (06-26)
· 修复Linux、Windows双系统中损坏的Grub (06-26) · Linux基金会希望NVIDIA显卡驱动开放源码 (06-26)
· JavaScript实现网页图片等比例缩放效果 (06-25) · Linux系统下推荐使用的5个屏幕录像软件 (06-25)
· 在JSP环境中如何来配置和使用fckeditor (06-24) · 浏览器之争:Opera 9.5极地反攻Firefox 3 (06-24)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:扭亏为盈 联想09年Q2翻番
·专题:Tech·Ed 2009微..
·直播:2009互联网大会..
·迅雷搜狐"互搏" 谁动了..
专题:诺基亚危局已现 或重蹈摩托覆辙
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
·专题:排排坐开商店 三..
商务演示需求分析 多媒体会议室必备投影
·VMware在京隆重举行2009..
·专题:笔记本频道10月热..
·专题:学生机市场 惠普 ..
专题:Tech.Ed 2009微软技术大会
·专题:2009 SYBASE 亚太..
·专题:微软新一代桌面操..
·专题:2009年第3届CSDN..