怎麼做才能在啟動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:

JBoss 4.0.1+版本,在bin目錄配備prebaked init腳本, 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 ~]# chmod 755 /etc/rc.d/init.d/jboss

其中,$JBOSS_HOME在你操作的時候不能這樣寫,它代表的是你的jboss安裝的目錄,到時你需要替換掉它。

然後使用vi編輯器編輯它:

#!/bin/sh
#
# $Id: jboss_init_redhat.sh 46554 2006-07-28 10:29:13Z dimitris $
#
# JBoss Control Script
#
# To use this script run it as root - it will switch to the specified user
#
# Here is a little (and extremely primitive) startup/shutdown script
# for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
# it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
# All this can be changed in the script itself.
#
# Either modify this script for your requirements or just ensure that
# the following variables are set correctly before calling the script.

#換成你本機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
# ensure the file exists
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: location for saving console log invalid: $JBOSS_CONSOLE"
#自啟動日誌
# echo "WARNING: ignoring it and using /dev/null"
echo "WARNING: ignoring it and using $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 $JBOSSCP org.jboss.Shutdown --shutdown -S"}
#我自己用的關閉方式
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"cd $JBOSS_HOME/bin; $JBOSSCP"}

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

if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
exit 1
fi
#這是默認的控制台打印啟動腳本命令,很不爽,就關了
#echo JBOSS_CMD_START = $JBOSS_CMD_START

case "$1" in
start)
echo "JBoss start.........."
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 "JBoss stop........."
if [ -z "$SUBIT" ]; then
$JBOSS_CMD_STOP
else
$SUBIT "$JBOSS_CMD_STOP"
fi
;;
restart)
echo "JBoss restart........"
$0 stop
sleep 60
$0 start
;;
*)
echo "usage: $0 (start|stop|restart|help)"
esac

這些腳本能傳送日誌到/dev/null,但是我們還是想得到輸入日誌,以便我們來處理運行中的錯誤。所以我們要創建一個真實的文件:
[root@vm2 ~]# mkdir $JBOSS_HOME/jbossAutoStart.log

[root@vm2 ~]# chown -R jboss.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中將執行"service jboss start"命令是,就對應"S"鏈接和"service jboss stop"命令是對於K鏈接。

到此,完成。