Linux下配置jboss开机自启动
1、安装JDK
先安装JDK,这里使用的是JDK1.5.0.06
2、设置JDK环境变量
1)编辑系统环境变量文件/etc/profile
vi /etc/profile
添加如下内容:
#SET JAVA ENVIRONMENT
JAVA_HOME=/usr/java/jdk1.5.0_06 #配置jdk路径
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
2)编辑/etc/profile.d/java.sh
vi /etc/profile.d/java.sh
添加如下内容:
#SET JAVA ENVIRONMENT
JAVA_HOME=/usr/java/jdk1.5.0_06 #配置jdk路径
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
3、安装JBOSS
jboss不用运行安装,直接解压zip即可(这里使用的是jboss-4.2.3.GA.zip),命令为unzip jboss-4.2.3.GA.zip。这里使用的jboss版本是jboss-4.2.3.GA。下面的配置中jboss是安装在/usr目录下。
4、设置JBOSS环境变量
打开环境变量文件/etc/profile
vi /etc/profile
添加如下内容:
#SET JBOSS ENVIRONMENT
JBOSS_HOME=/usr/jboss-4.2.3.GA #jboss安装路径
export JBOSS_HOME
5、设置JBOSS开机启动服务
1)创建服务文件
cp $JBOSS_HOME/bin/jboss_init_redhat.sh /etc/rc.d/init.d/jboss
2)修改服务文件
vi /etc/rc.d/init.d/jboss
I、修改JBOSS_HOME,使得
JBOSS_HOME=${JBOSS_HOME:-"/usr/jboss-4.2.3.GA"}
II、修改JAVAPTH,使得
JAVAPTH=${JAVAPTH:-"/usr/java/jdk1.5.0_06/bin"}
III、修改启动用户,使得
JBOSS_USER=${JBOSS_USER:-"root"}
IV、设置所有IP能够访问jboss
在JBOSS_CONF=${JBOSS_CONF:-"default"}下添加语句:
JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}
3)设置启动脚步
ln -s /etc/init.d/jboss /etc/rc3.d/K20jboss
ln -s /etc/init.d/jboss /etc/rc3.d/S80jboss
ln -s /etc/init.d/jboss /etc/rc5.d/K20jboss
ln -s /etc/init.d/jboss /etc/rc5.d/S80jboss
4)分配执行权限
chmod -f 770 /etc/init.d/jboss
chmod -f 770 /etc/rc3.d/S80jboss
chmod -Rf 770 $JBOSS_HOME
6、启动、关闭JBOSS
重启机器、则会自动启动JBOSS,下面是一些常用命令
启动服务:service jboss start
关闭服务:service jboss stop
重启服务:service jboss restart
特别注意:
CentOS6中/sbin/pidof不一样造成jboss启动脚本不能正常工作
一直JBoss的启动脚本在服务器上工作得很好,新装了新的CentOS6.3服务器,却发现不能正常工作,表现在无法停止jboss,报告没有JBoss在运行,仔细看了下启动脚本,一行一行调试下来,发现问题出在procrunning函数中
function procrunning() {
procid=0
JBOSSSCRIPT=$(echo $JBOSSSH | awk '{print $1}' | sed 's/\//\\\//g')
for procid in `/sbin/pidof -x "$JBOSSSCRIPT"`; do
ps -fp $procid | grep "${JBOSSSH% *}" > /dev/null && pid=$procid
done
}
这个函数第三行中的最后部分使用sed把路径中的"/"替换为"\/",然而/sbin/pidof却在CentOS6中不接受此种样式的参数,在CentOS6中如果要使用Jboss的redhat_init脚本,需要去掉这行的最后的sed部分。