`
qtlkw
  • 浏览: 300302 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Install JBoss as daemon and Startup Service on Linux

阅读更多
转载自: http://www.opencrx.org/opencrx/1.7/JBoss-4/html/c382.htm

This section (provided by Seah Hong Yee) is devoted to the automatic start up of jboss services during the startup phase of a server. It also simplifies manual jboss startup with the use a of System V init script. The following configuration has been tested on Mandrake Linux 10.1 and SuSe Linux Enterprise Server 9. Based on the particular distribution at hand there might be some minor differences in init scripts and configuration, but the following guide should work with RHEL, CentOS, WhiteBox and Fedora.

In the directory $JBOSS_HOME/bin there should be two init scripts:

    * jboss_init_redhat.sh
    * jboss_init_suse.sh

If you are using Mandrake/Mandriva, RHEL, CentOS, WhiteBox or Fedora:

    1) Copy the jboss_init_redhat.sh script into /etc/init.d and rename it to jboss.

    2) Edit the script and adapt the following parameters: JBOSS_HOME and JAVAPATH

    3) Although not strictly necessary, you might want to include an entry like:
      Example 7-1. Declare location of jdk
      export PATH=/usr/java/jdk1.5.0_18/bin
      (/usr/java/jdk1.5.0_18/ being your jdk path, adapt it to your environment)

     
引用

      #define where jboss is - this is the directory containing directories log, bin, conf etc
      JBOSS_HOME=${JBOSS_HOME:-"/apps/jboss-4.2.2.GA"}

      #define the user under which jboss will run, or use 'RUNASIS' to run as the current user
      JBOSS_USER=${JBOSS_USER:-"devadmin"}

      #make sure java is in your path
      export PATH=$PATH:/apps/jdk1.5.0_18/bin
      JAVAPTH=${JAVAPTH:-"/apps/jdk1.5.0_18/bin"}


    4) At the top of the script there's an entry that resembles the following one:
      Example 7-2. Declare startup sequence
     
引用
# chkconfig: 3 97 20


The second set of digits represents the order sequence of the service startup. Make sure the number is larger than your database startup. Typically postgresql starts with the sequence number of 85, so I have my jboss startup with the sequence of 87

     
引用

      Type the commands
      Example 7-3. Add jboss to config
      # chkconfig --add jboss
      # chkconfig jboss on
      # chkconfig --list


From now on jboss should startup automatically after reboot, or you can do it manually with service jboss restart.

For Suse Linux, please do the following:

    1) Copy the jboss_init_suse.sh script into /etc/init.d and rename it to jboss.

    2) Edit the script and change the following parameters: JBOSS_HOME and JAVAPTH

    3) Although not strictly necessary, you might want to include an entry near the top of the script:
      Example 7-4. Declare location of jdk
      export PATH=/usr/java/jdk1.5.0_18/bin
      (/usr/java/jdk1.5.0_18/ being your jdk path, adapt it to your environment)

    4) Type the command "inserv jboss"

    5) Go into directory /usr/sbin and create a symbolic link with "ln -s /etc/init.d/jboss rcjboss"

    6) Execute the command "chkconfig jboss on"

You should be able to start jboss with the command "rcjboss start"

For example
#!/bin/sh
# chkconfig: 3 97 20 
# description: JBoss App Server
# processname: jboss
# $Id: jboss_init_redhat.sh 60992 2007-02-28 11:33:27Z dimitris@jboss.org $
#
# 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.

#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/apps/jboss-4.2.2.GA"}

#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"devadmin"}

#make sure java is in your path
export PATH=$PATH:/apps/jdk1.5.0_18/bin
JAVAPTH=${JAVAPTH:-"/apps/jdk1.5.0_18/bin"}

#configuration to use, usually one of 'minimal', 'default', 'all'
JBOSS_CONF=${JBOSS_CONF:-"default"}

#if JBOSS_HOST specified, use -b to bind jboss services to that address
JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}

#define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}

#define the script to use to start jboss
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}

if [ "$JBOSS_USER" = "RUNASIS" ]; then
#if [ "$JBOSS_USER" = "devadmin" ]; 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 /apps/jboss-4.2.2.GA/server/default/log/applogs"
 #JBOSS_CONSOLE="/dev/null"
  JBOSS_CONSOLE="/apps/jboss-4.2.2.GA/server/default/log/applogs"
fi

#define what will be done with the console log
#JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/apps/jboss-4.2.2.GA/server/default/log/applogs"}

JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}

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)
    cd $JBOSS_HOME/bin
    if [ -z "$SUBIT" ]; then
        eval $JBOSS_CMD_START >${JBOSS_CONSOLE} 2> /apps/jboss-4.2.2.GA/server/default/log/applogs &
    else
        #$SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &" 
         $SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2> /apps/jboss-4.2.2.GA/server/default/log/applogs &" 
    fi
    ;;
stop)
    if [ -z "$SUBIT" ]; then
        $JBOSS_CMD_STOP
    else
        $SUBIT "$JBOSS_CMD_STOP"
    fi 
    ;;
restart)
    $0 stop
    $0 start
    ;;
*)
    echo "usage: $0 (start|stop|restart|help)"
esac
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics