怎么做才能在启动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链接。
到此,完成。