123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- #!/bin/sh
- # Use --debug to activate debug mode with an optional argument to specify the port.
- # Usage : standalone.bat --debug
- # standalone.bat --debug 9797
- if [ ! -z "$JBOSS_WAIT" ] ; then
- sleep $JBOSS_WAIT
- fi
- gotmpl /opt/jboss/jboss-as-7.2.0.Final/standalone/configuration/standalone.xml.template > /opt/jboss/jboss-as-7.2.0.Final/standalone/configuration/standalone.xml
- if [ ! -z "$DEV_MODE" ] ; then
- echo ###### standalone.xml ######
- cat /opt/jboss/jboss-as-7.2.0.Final/standalone/configuration/standalone.xml
- echo ############################
- echo .
- echo .
- fi
- # By default debug mode is disable.
- DEBUG_MODE=false
- DEBUG_PORT="8787"
- SERVER_OPTS=""
- while [ "$#" -gt 0 ]
- do
- case "$1" in
- --debug)
- DEBUG_MODE=true
- shift
- if [ -n "$1" ] && [ "${1#*-}" = "$1" ]; then
- DEBUG_PORT=$1
- else
- SERVER_OPTS="$SERVER_OPTS $1"
- fi
- ;;
- --)
- shift
- break;;
- *)
- SERVER_OPTS="$SERVER_OPTS \"$1\""
- ;;
- esac
- shift
- done
- DIRNAME=`dirname "$0"`
- PROGNAME=`basename "$0"`
- GREP="grep"
- # Use the maximum available, or set MAX_FD != -1 to use that
- MAX_FD="maximum"
- # OS specific support (must be 'true' or 'false').
- cygwin=false;
- darwin=false;
- linux=false;
- case "`uname`" in
- CYGWIN*)
- cygwin=true
- ;;
- Darwin*)
- darwin=true
- ;;
- Linux)
- linux=true
- ;;
- esac
- # For Cygwin, ensure paths are in UNIX format before anything is touched
- if $cygwin ; then
- [ -n "$JBOSS_HOME" ] &&
- JBOSS_HOME=`cygpath --unix "$JBOSS_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$JAVAC_JAR" ] &&
- JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"`
- fi
- # Setup JBOSS_HOME
- RESOLVED_JBOSS_HOME=`cd "$DIRNAME/.."; pwd`
- if [ "x$JBOSS_HOME" = "x" ]; then
- # get the full path (without any relative bits)
- JBOSS_HOME=$RESOLVED_JBOSS_HOME
- else
- SANITIZED_JBOSS_HOME=`cd "$JBOSS_HOME"; pwd`
- if [ "$RESOLVED_JBOSS_HOME" != "$SANITIZED_JBOSS_HOME" ]; then
- echo ""
- echo " WARNING: JBOSS_HOME may be pointing to a different installation - unpredictable results may occur."
- echo ""
- echo " JBOSS_HOME: $JBOSS_HOME"
- echo ""
- sleep 2s
- fi
- fi
- export JBOSS_HOME
- # Read an optional running configuration file
- if [ "x$RUN_CONF" = "x" ]; then
- RUN_CONF="$DIRNAME/standalone.conf"
- fi
- if [ -r "$RUN_CONF" ]; then
- . "$RUN_CONF"
- fi
- # Set debug settings if not already set
- if [ "$DEBUG_MODE" = "true" ]; then
- DEBUG_OPT=`echo $JAVA_OPTS | $GREP "\-agentlib:jdwp"`
- if [ "x$DEBUG_OPT" = "x" ]; then
- JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n"
- else
- echo "Debug already enabled in JAVA_OPTS, ignoring --debug argument"
- fi
- fi
- # Setup the JVM
- if [ "x$JAVA" = "x" ]; then
- if [ "x$JAVA_HOME" != "x" ]; then
- JAVA="$JAVA_HOME/bin/java"
- else
- JAVA="java"
- fi
- fi
- if [ "$PRESERVE_JAVA_OPTS" != "true" ]; then
- # Check for -d32/-d64 in JAVA_OPTS
- JVM_D64_OPTION=`echo $JAVA_OPTS | $GREP "\-d64"`
- JVM_D32_OPTION=`echo $JAVA_OPTS | $GREP "\-d32"`
- # Check If server or client is specified
- SERVER_SET=`echo $JAVA_OPTS | $GREP "\-server"`
- CLIENT_SET=`echo $JAVA_OPTS | $GREP "\-client"`
- if [ "x$JVM_D32_OPTION" != "x" ]; then
- JVM_OPTVERSION="-d32"
- elif [ "x$JVM_D64_OPTION" != "x" ]; then
- JVM_OPTVERSION="-d64"
- elif $darwin && [ "x$SERVER_SET" = "x" ]; then
- # Use 32-bit on Mac, unless server has been specified or the user opts are incompatible
- "$JAVA" -d32 $JAVA_OPTS -version > /dev/null 2>&1 && PREPEND_JAVA_OPTS="-d32" && JVM_OPTVERSION="-d32"
- fi
- CLIENT_VM=false
- if [ "x$CLIENT_SET" != "x" ]; then
- CLIENT_VM=true
- elif [ "x$SERVER_SET" = "x" ]; then
- if $darwin && [ "$JVM_OPTVERSION" = "-d32" ]; then
- # Prefer client for Macs, since they are primarily used for development
- CLIENT_VM=true
- PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -client"
- else
- PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -server"
- fi
- fi
- if [ $CLIENT_VM = false ]; then
- NO_COMPRESSED_OOPS=`echo $JAVA_OPTS | $GREP "\-XX:\-UseCompressedOops"`
- if [ "x$NO_COMPRESSED_OOPS" = "x" ]; then
- "$JAVA" $JVM_OPTVERSION -server -XX:+UseCompressedOops -version >/dev/null 2>&1 && PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -XX:+UseCompressedOops"
- fi
- fi
- JAVA_OPTS="$PREPEND_JAVA_OPTS $JAVA_OPTS"
- fi
- if [ "x$JBOSS_MODULEPATH" = "x" ]; then
- JBOSS_MODULEPATH="$JBOSS_HOME/modules"
- fi
- if $linux; then
- # consolidate the server and command line opts
- CONSOLIDATED_OPTS="$JAVA_OPTS $SERVER_OPTS"
- # process the standalone options
- for var in $CONSOLIDATED_OPTS
- do
- case $var in
- -Djboss.server.base.dir=*)
- JBOSS_BASE_DIR=`readlink -m ${var#*=}`
- ;;
- -Djboss.server.log.dir=*)
- JBOSS_LOG_DIR=`readlink -m ${var#*=}`
- ;;
- -Djboss.server.config.dir=*)
- JBOSS_CONFIG_DIR=`readlink -m ${var#*=}`
- ;;
- esac
- done
- fi
- # determine the default base dir, if not set
- if [ "x$JBOSS_BASE_DIR" = "x" ]; then
- JBOSS_BASE_DIR="$JBOSS_HOME/standalone"
- fi
- # determine the default log dir, if not set
- if [ "x$JBOSS_LOG_DIR" = "x" ]; then
- JBOSS_LOG_DIR="$JBOSS_BASE_DIR/log"
- fi
- # determine the default configuration dir, if not set
- if [ "x$JBOSS_CONFIG_DIR" = "x" ]; then
- JBOSS_CONFIG_DIR="$JBOSS_BASE_DIR/configuration"
- fi
- # For Cygwin, switch paths to Windows format before running java
- if $cygwin; then
- JBOSS_HOME=`cygpath --path --windows "$JBOSS_HOME"`
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- JBOSS_MODULEPATH=`cygpath --path --windows "$JBOSS_MODULEPATH"`
- JBOSS_BASE_DIR=`cygpath --path --windows "$JBOSS_BASE_DIR"`
- JBOSS_LOG_DIR=`cygpath --path --windows "$JBOSS_LOG_DIR"`
- JBOSS_CONFIG_DIR=`cygpath --path --windows "$JBOSS_CONFIG_DIR"`
- fi
- # Display our environment
- echo "========================================================================="
- echo ""
- echo " JBoss Bootstrap Environment"
- echo ""
- echo " JBOSS_HOME: $JBOSS_HOME"
- echo ""
- echo " JAVA: $JAVA"
- echo ""
- echo " JAVA_OPTS: $JAVA_OPTS"
- echo ""
- echo "========================================================================="
- echo ""
- while true; do
- if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
- # Execute the JVM in the foreground
- eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
- \"-Dorg.jboss.boot.log.file=$JBOSS_LOG_DIR/server.log\" \
- \"-Dlogging.configuration=file:$JBOSS_CONFIG_DIR/logging.properties\" \
- -jar \"$JBOSS_HOME/jboss-modules.jar\" \
- -mp \"${JBOSS_MODULEPATH}\" \
- -jaxpmodule "javax.xml.jaxp-provider" \
- org.jboss.as.standalone \
- -Djboss.home.dir=\"$JBOSS_HOME\" \
- -Djboss.server.base.dir=\"$JBOSS_BASE_DIR\" \
- "$SERVER_OPTS"
- JBOSS_STATUS=$?
- else
- # Execute the JVM in the background
- eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
- \"-Dorg.jboss.boot.log.file=$JBOSS_LOG_DIR/server.log\" \
- \"-Dlogging.configuration=file:$JBOSS_CONFIG_DIR/logging.properties\" \
- -jar \"$JBOSS_HOME/jboss-modules.jar\" \
- -mp \"${JBOSS_MODULEPATH}\" \
- -jaxpmodule "javax.xml.jaxp-provider" \
- org.jboss.as.standalone \
- -Djboss.home.dir=\"$JBOSS_HOME\" \
- -Djboss.server.base.dir=\"$JBOSS_BASE_DIR\" \
- "$SERVER_OPTS" "&"
- JBOSS_PID=$!
- # Trap common signals and relay them to the jboss process
- trap "kill -HUP $JBOSS_PID" HUP
- trap "kill -TERM $JBOSS_PID" INT
- trap "kill -QUIT $JBOSS_PID" QUIT
- trap "kill -PIPE $JBOSS_PID" PIPE
- trap "kill -TERM $JBOSS_PID" TERM
- if [ "x$JBOSS_PIDFILE" != "x" ]; then
- echo $JBOSS_PID > $JBOSS_PIDFILE
- fi
- # Wait until the background process exits
- WAIT_STATUS=128
- while [ "$WAIT_STATUS" -ge 128 ]; do
- wait $JBOSS_PID 2>/dev/null
- WAIT_STATUS=$?
- if [ "$WAIT_STATUS" -gt 128 ]; then
- SIGNAL=`expr $WAIT_STATUS - 128`
- SIGNAL_NAME=`kill -l $SIGNAL`
- echo "*** JBossAS process ($JBOSS_PID) received $SIGNAL_NAME signal ***" >&2
- fi
- done
- if [ "$WAIT_STATUS" -lt 127 ]; then
- JBOSS_STATUS=$WAIT_STATUS
- else
- JBOSS_STATUS=0
- fi
- if [ "$JBOSS_STATUS" -ne 10 ]; then
- # Wait for a complete shudown
- wait $JBOSS_PID 2>/dev/null
- fi
- if [ "x$JBOSS_PIDFILE" != "x" ]; then
- grep "$JBOSS_PID" $JBOSS_PIDFILE && rm $JBOSS_PIDFILE
- fi
- fi
- if [ "$JBOSS_STATUS" -eq 10 ]; then
- echo "Restarting JBoss..."
- else
- exit $JBOSS_STATUS
- fi
- done
|