将JBoss做成RedhatLinux的系统服务
点击次数:28 次 发布日期:2008-11-22 09:37:14 作者:源代码网
|
使用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链接。
到此,完成。
源代码网供稿.
