#!/bin/sh
#
# jboss JBoss application server
# chkconfig: 345 98 2
# description: JBoss application server startup script
#
#
# modified by sergerus@gmail.com
#
# $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.
JBOSS_SERVICE_NAME=${JBOSS_SERVICE_NAME:-"JBoss"}
#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/opt/jboss"}
if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
exit 1
fi
export LAUNCH_JBOSS_IN_BACKGROUND=${LAUNCH_JBOSS_IN_BACKGROUND:-"1"}
JBOSS_PIDFILE=${JBOSS_PIDFILE:-"$JBOSS_HOME/jboss.pid"}
#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"jboss"}
#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_HOST=0.0.0.0
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"}
#define what will be done with the console log
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_START_TIMEOUT=${JBOSS_START_TIMEOUT:-"300"}
JBOSS_STOP_TIMEOUT=${JBOSS_STOP_TIMEOUT:-"60"}
is_jboss_running() {
[ -f $JBOSS_PIDFILE ] || return 1
PID=$(cat $JBOSS_PIDFILE)
[ ! -z $PID ] || return 1
ps -p $PID >/dev/null 2>/dev/null || return 1
return 0
}
if [ "$JBOSS_USER" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSS_USER -c "
fi
if [ -n "$JBOSS_CONSOLE" ] ; then
if [ -e $JBOSS_CONSOLE ] ; then
if [ -f $JBOSS_CONSOLE ] ; then
touch $JBOSS_CONSOLE
[ ! -z "$SUBIT" ] && chown $JBOSS_USER $JBOSS_CONSOLE
fi
else
touch $JBOSS_CONSOLE
[ ! -z "$SUBIT" ] && chown $JBOSS_USER $JBOSS_CONSOLE
fi
else
JBOSS_CONSOLE=/dev/null
fi
JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
case "$1" in
start)
echo "Starting $JBOSS_SERVICE_NAME..."
if [ -f $JBOSS_PIDFILE ] ; then
if is_jboss_running ; then
echo "$JBOSS_SERVICE_NAME seems already running!!"
exit 1
else
# dead pid file - remove
rm -f $JBOSS_PIDFILE
fi
fi
touch $JBOSS_PIDFILE
[ ! -z "$SUBIT" ] && chown $JBOSS_USER $JBOSS_PIDFILE
if [ -z "$SUBIT" ]; then
eval "
$JBOSS_CMD_START >$JBOSS_CONSOLE 2>&1 &
echo \$! >$JBOSS_PIDFILE
"
else
$SUBIT "
$JBOSS_CMD_START >$JBOSS_CONSOLE 2>&1 &
echo \$! >$JBOSS_PIDFILE
"
fi
RETVAL=1
TIMER=$JBOSS_START_TIMEOUT
while [ $RETVAL -ne 0 -a $TIMER -gt 0 ] ; do
echo -n .
sleep 1
#nc -w 1 -z localhost 8080 >/dev/null 2>&1
curl -s -m 1 http://localhost:8080 >/dev/null 2>&1
RETVAL=$?
let TIMER=$TIMER-1
done
if [ $RETVAL -eq 0 ]; then
echo "$JBOSS_SERVICE_NAME started."
else
echo "$JBOSS_SERVICE_NAME start timeout. failed!"
fi
;;
stop)
echo "Stopping $JBOSS_SERVICE_NAME..."
if is_jboss_running ; then
PID=$(cat $JBOSS_PIDFILE)
if [ -z "$SUBIT" ]; then
$JBOSS_CMD_STOP
else
$SUBIT "$JBOSS_CMD_STOP"
fi
TIMER=$JBOSS_STOP_TIMEOUT
while is_jboss_running && [ $TIMER -gt 0 ] ; do
echo -n .
sleep 1
let TIMER=$TIMER-1
done
if is_jboss_running ; then
kill -INT $PID
sleep 3
if is_jboss_running ; then
kill -TERM $PID
sleep 3
if is_jboss_running ; then
kill -KILL $PID
sleep 3
if is_jboss_running ; then
echo "WARN: Can't kill $JBOSS_SERVICE_NAME"
exit 1
fi
fi;
fi;
fi
rm -f $JBOSS_PIDFILE
echo "$JBOSS_SERVICE_NAME stopped."
else
echo "$JBOSS_SERVICE_NAME seems not running!"
fi
;;
restart)
$0 stop
$0 start
;;
check)
echo "JBOSS_SERVICE_NAME = $JBOSS_SERVICE_NAME"
echo "JBOSS_HOME = $JBOSS_HOME"
echo "JBOSS_PIDFILE = $JBOSS_PIDFILE"
echo "JBOSS_USER = $JBOSS_USER"
echo "JBOSS_CONF = $JBOSS_CONF"
echo "JBOSS_HOST = $JBOSS_HOST"
echo "JBOSS_BIND_ADDR = $JBOSS_BIND_ADDR"
echo "JBOSSCP = $JBOSSCP"
echo "JBOSSSH = $JBOSSSH"
echo "JBOSS_CONSOLE = $JBOSS_CONSOLE"
echo "JBOSS_START_TIMEOUT = $JBOSS_START_TIMEOUT"
echo "JBOSS_STOP_TIMEOUT = $JBOSS_STOP_TIMEOUT"
echo "JBOSS_CMD_START = $JBOSS_CMD_START"
echo "JBOSS_CMD_STOP = $JBOSS_CMD_STOP"
;;
*)
echo "usage: $0 (start|stop|restart|check|help)"
esac
вторник, 13 апреля 2010 г.
JBoss init.d startup script
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий