位置:海鸟网 > IT > linux/Unix >

将JBoss做成RedhatLinux的系统服务

怎么做才能在启动Linux系统的时候JBoss也随之启动呢?
 
使用Linux系统的V脚本。尽管,在分类之间有一些不同,通常它类似这样:
 
/etc/rc.d/init.d/-包含开始和停止脚本(其他分类:/etc/init.d/)
 
/etc/rc.(x)/-包含用S或者K前缀的开始和停止脚本链接(启动或者杀死)
 
对于各种不同层次的系统用户有各种不同的运行级别。
 
rc1.d–单用户模式
 
rc2.d–启用网络的单用户模式
 
rc3.d–多用户模式-用文本模式启动
 
rc4.d–未定义
 
rc5.d–多用户模式–用X窗口启动
 
rc6.d–关闭
 
现在我们开始工作:
 
创建jboss用户和安装jboss就不再这里多说了。
 
创建一个脚本叫/etc/rc.d/init.d/jboss
 
创建一个链接叫/etc/rc3.d/S84jboss
 
可选的方式/etc/rc5.d/S84jboss和/etc/rc4.d/S84jboss
 
创建一个链接叫/etc/rc6.d/K15jboss
 
在/etc/rc1.d,/etc/rc2.d,/etc/rc0.d上创建K15链接
 
需要注意的是:确保$JBOSS_HOME目录能被“jboss”用户读写。如果有问题,可以点击查看JBoss应用服务器推荐UNIX文件系统许可。
 
创建脚本jboss:
 
JBoss4.0.1+版本,在bin目录配备prebakedinit脚本,jboss_init_redhat.sh和jboss_init_suse.sh.你可以复制这些脚本中的一个到/etc/rc.d/init.d/jboss,由于我用的是redhat,所以复制jboss_init_redhat.sh,并修改它为可执行。
 
[root@vm2~]#cp$JBOSS_HOME/bin/jboss_init_redhat.sh/etc/rc.d/init.d/jboss
 
[root@vm2~]#chmod755/etc/rc.d/init.d/jboss
 
其中,$JBOSS_HOME在你操作的时候不能这样写,它代表的是你的jboss安装的目录,到时你需要替换掉它。
 
然后使用vi编辑器编辑它:
 
#!/bin/sh
#
#$Id:jboss_init_redhat.sh465542006-07-2810:29:13Zdimitris$
#
#JBossControlScript
#
#Tousethisscriptrunitasroot-itwillswitchtothespecifieduser
#
#Hereisalittle(andextremelyprimitive)startup/shutdownscript
#forRedHatsystems.ItassumesthatJBosslivesin/usr/local/jboss,
#it'srunbyuser'jboss'andJDKbinariesarein/usr/local/jdk/bin.
#Allthiscanbechangedinthescriptitself.
#
#Eithermodifythisscriptforyourrequirementsorjustensurethat
#thefollowingvariablesaresetcorrectlybeforecallingthescript.

#换成你本机jboss的安装目录
JBOSS_HOME=${JBOSS_HOME:-"/home/jboss/jboss-4.0.5.GA"}

#换成你新建的jboss用户
JBOSS_USER=${JBOSS_USER:-"jboss"}

#换成本地java路径
JAVAPTH=${JAVAPTH:-"/home/jboss/jdk1.5.0_14/bin"}

#启动的配置参数,有3个值:'minimal','default','all',all是集群模式的配置
JBOSS_CONF=${JBOSS_CONF:-"default"}

#这里是绑定所有的网卡,如果绑一个,就写你的IP地址。只在jboss4.2.0+的版本对外使用时才使用。
#JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}

#默认的关闭脚本,好像不太好用,我就没用
#JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}

#jboss4.2.0+版本对外服务绑定Ip的时候的关闭脚本
#JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.sh-S-s$JBOSS_HOST"}

#jboss关闭脚本
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.sh-S"}

#这是jboss4.2.0+版本对外服务时的启动
#JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh-c$JBOSS_CONF-b$JBOSS_HOST"}

#jboss启动
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh-c$JBOSS_CONF"}

if["$JBOSS_USER"="RUNASIS"];then
SUBIT=""
else
SUBIT="su-$JBOSS_USER-c"
fi

if[-n"$JBOSS_CONSOLE"-a!-d"$JBOSS_CONSOLE"];then
#ensurethefileexists
touch$JBOSS_CONSOLE
if[!-z"$SUBIT"];then
chown$JBOSS_USER$JBOSS_CONSOLE
fi
fi

if[-n"$JBOSS_CONSOLE"-a!-f"$JBOSS_CONSOLE"];then
echo"WARNING:locationforsavingconsoleloginvalid:$JBOSS_CONSOLE"
#自启动日志
#echo"WARNING:ignoringitandusing/dev/null"
echo"WARNING:ignoringitandusing$JBOSS_HOME/jbossAutoStart.log"

#自启动日志
#JBOSS_CONSOLE="/dev/null"
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"$JBOSS_HOME/jbossAutoStart.log"}
fi

#自启动日志
#JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"$JBOSS_HOME/jbossAutoStart.log"}

JBOSS_CMD_START="cd$JBOSS_HOME/bin;$JBOSSSH"
#这个是默认的,跟上面的一样,不太好用
#JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java-classpath$JBOSSCPorg.jboss.Shutdown--shutdown-S"}
#我自己用的关闭方式
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"cd$JBOSS_HOME/bin;$JBOSSCP"}

if[-z"`echo$PATH|grep$JAVAPTH`"];then
exportPATH=$PATH:$JAVAPTH
fi

if[!-d"$JBOSS_HOME"];then
echoJBOSS_HOMEdoesnotexistasavaliddirectory:$JBOSS_HOME
exit1
fi
#这是默认的控制台打印启动脚本命令,很不爽,就关了
#echoJBOSS_CMD_START=$JBOSS_CMD_START

case"$1"in
start)
echo"JBossstart.........."
cd$JBOSS_HOME/bin
if[-z"$SUBIT"];then