当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 将JBoss做成RedhatLinux的系统服务

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 将JBoss做成RedhatLinux的系统服务


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 42 ::
收藏到网摘: n/a

怎么做才能在启动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
eval$JBOSS_CMD_START>${JBOSS_CONSOLE}2>&1&
else
$SUBIT"$JBOSS_CMD_START>${JBOSS_CONSOLE}2>&1&"
fi
;;
stop)
echo"JBossstop........."
if[-z"$SUBIT"];then
$JBOSS_CMD_STOP
else
$SUBIT"$JBOSS_CMD_STOP"
fi
;;
restart)
echo"JBossrestart........"
$0stop
sleep60
$0start
;;
*)
echo"usage:$0(start|stop|restart|help)"
esac
 
这些脚本能传送日志到/dev/null,但是我们还是想得到输入日志,以便我们来处理运行中的错误。所以我们要创建一个真实的文件:
 
[root@vm2~]#mkdir$JBOSS_HOME/jbossAutoStart.log
 
[root@vm2~]#chown-Rjboss.jboss$JBOSS_HOME/jbossAutoStart.log
 
创建链接:
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc3.d/S84jboss
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc4.d/S84jboss
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc5.d/S84jboss
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc0.d/K15jboss
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc1.d/K15jboss
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc2.d/K15jboss
 
[root@vm2~]#ln-s/etc/rc.d/init.d/jboss/etc/rc6.d/K15jboss
 
当你在Linux中将执行"servicejbossstart"命令是,就对应"S"链接和"servicejbossstop"命令是对于K链接。
 
到此,完成。