#!/bin/sh if [ -z "$INSTALL_ROOT" ] ; then PRGDIR=`dirname $0` cd $PRGDIR INSTALL_ROOT=`pwd -P | sed 's/\(.*\)\/.*/\1/'` export INSTALL_ROOT fi if [ -r $INSTALL_ROOT/bin/setDEMSEnv.sh ] ; then . $INSTALL_ROOT/bin/setDEMSEnv.sh fi if [ -z "$RELEASE_ROOT" ] ; then RELEASE_ROOT=$INSTALL_ROOT export RELEASE_ROOT fi cygwin=false darwin=false case "`uname`" in CYGWIN*) cygwin=true;; Darwin) darwin=true;; esac if [ -z "$JAVA_HOME" ] ; then JAVA_CMD=java else if $cygwin; then JAVA_HOME=`cygpath -u "$JAVA_HOME"` fi JAVA_CMD="$JAVA_HOME/bin/java" fi USAGE="Usage: `basename $0` [-D= ...] [-bg] [-debug []]" # we want at least one parameter, the instance name if [ $# -eq 0 ] then echo $USAGE >&2 exit 1 fi INSTANCE=$1 shift DEBUG= BACKGROUND= PORT=4142 SYSPROPS= JAVA_OPTS=-Xmx4096M ERRORCODE=99 for i in $* do case $i in -bg|--backgound) BACKGROUND=true ;; -d|-debug) DEBUG=true ;; -safe) SYSPROPS="$SYSPROPS -Dorg.osgi.framework.startlevel.beginning=5" ;; -D*) SYSPROPS="$SYSPROPS $i" ;; -X*) JAVA_OPTS="$JAVA_OPTS $i" ;; -fork) FORK=true ;; *) PORT=`echo $i | sed 's/[0-9]*=//'` ;; esac done if [ -n "$DEBUG" ] then DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,address=$PORT,server=y,suspend=n" export DEBUG_OPTS fi if [ -z "$JAVA_OPTS" ] then uname -m | grep "x86_64" 2>&1 /dev/null if [ $? -eq 1 ] then JAVA_OPTS="-Xmx2048M -XX:MaxPermSize=256M" else JAVA_OPTS="-Xmx1024M -XX:MaxPermSize=192M" fi fi export JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/appdynamicAppagent/ver4.3.7.3/javaagent.jar export JAVA_OPTS INSTANCE_ROOT=$RELEASE_ROOT/instances/$INSTANCE cd $INSTANCE_ROOT # echo "RELEASE_ROOT: " $RELEASE_ROOT # echo "JAVA_OPTS: " $JAVA_OPTS # echo "DEBUG_OPTS: " $DEBUG_OPTS # echo "INSTANCE_ROOT: " $INSTANCE_ROOT # echo "SYSPROPS: " $SYSPROPS echo "Starting instance [$INSTANCE]" PIDFILE=$INSTANCE_ROOT/java.pid if [ -n "$BACKGROUND" ] then if [ -f $PIDFILE ] then echo Instance [$INSTANCE] is already running. else $INSTALL_ROOT/bin/startup.sh $INSTANCE $JAVA_OPTS $SYSPROPS -fork & fi else startingJAVA_OPTS=$JAVA_OPTS saveLIBPATH=$LIBPATH saveLD_LIBRARY_PATH=$LD_LIBRARY_PATH while [ ${ERRORCODE:-0} -eq 99 ] ; do CP=$INSTANCE_ROOT:$RELEASE_ROOT/lib/felix.jar PRE_CLASSPATH="" POST_CLASSPATH="" PRE_LIBPATH="" POST_LIBPATH="" JAVA_OPTS=$startingJAVA_OPTS LIBPATH=$saveLIBPATH LD_LIBRARY_PATH=$saveLD_LIBRARY_PATH if [ -d $INSTANCE_ROOT/bin ] ; then for file in $INSTANCE_ROOT/bin/C*.sh ; do save_PRECP="$PRE_CLASSPATH" save_POSTCP="$POST_CLASSPATH" save_PRELP="$PRE_LIBPATH" save_POSTLP="$POST_LIBPATH" save_JAVA="$JAVA_OPTS" PRE_CLASSPATH="" POST_CLASSPATH="" PRE_LIBPATH="" POST_LIBPATH="" JAVA_OPTS="" . $file if [ ! -z "$PRE_CLASSPATH" ] ; then if [ ! -z "$save_PRECP" ] ; then PRE_CLASSPATH="$PRE_CLASSPATH:$save_PRECP" fi else PRE_CLASSPATH="$save_PRECP" fi if [ ! -z "$POST_CLASSPATH" ] ; then if [ ! -z "$save_POSTCP" ] ; then POST_CLASSPATH="$POST_CLASSPATH:$save_POSTCP" fi else POST_CLASSPATH="$save_POSTCP" fi if [ ! -z "$PRE_LIBPATH" ] ; then if [ ! -z "$save_PRELP" ] ; then PRE_LIBPATH="$PRE_LIBPATH:$save_PRELP" fi else PRE_LIBPATH="$save_PRELP" fi if [ ! -z "$POST_LIBPATH" ] ; then if [ ! -z "$save_POSTLP" ] ; then POST_LIBPATH="$POST_LIBPATH:$save_POSTLP" fi else POST_LIBPATH="$save_POSTLP" fi if [ ! -z "$JAVA_OPTS" ] ; then if [ ! -z "$save_JAVA" ] ; then JAVA_OPTS="$save_JAVA $JAVA_OPTS" fi else JAVA_OPTS="$save_JAVA" fi done if [ ! -z "$PRE_CLASSPATH" ] ; then CP="$PRE_CLASSPATH:$CP" fi if [ ! -z "$POST_CLASSPATH" ] ; then CP="$CP:$POST_CLASSPATH" fi if [ ! -z "$PRE_LIBPATH" ] ; then # LIBPATH is used in AIX and HPUX if [ -z "$LIBPATH" ] ; then LIBPATH="$PRE_LIBPATH" else LIBPATH="$PRE_LIBPATH:$LIBPATH" fi # LD_LIBRARY_PATH is used in Solaris and Linux if [ -z "$LD_LIBRARY_PATH" ] ; then LD_LIBRARY_PATH="$PRE_LIBPATH" else LD_LIBRARY_PATH="$PRE_LIBPATH:$LD_LIBRARY_PATH" fi fi if [ ! -z "$POST_LIBPATH" ] ; then # LIBPATH is used in AIX and HPUX if [ -z "$LIBPATH" ] ; then LIBPATH="$POST_LIBPATH" else LIBPATH="$LIBPATH:$POST_LIBPATH" fi # LD_LIBRARY_PATH is used in Solaris and Linux if [ -z "$LD_LIBRARY_PATH" ] ; then LD_LIBRARY_PATH="$POST_LIBPATH" else LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$POST_LIBPATH" fi fi fi export LIBPATH LD_LIBRARY_PATH if [ -n "$FORK" ] ; then if [ ! -d log ] ; then mkdir log fi $JAVA_CMD $JAVA_OPTS $DEBUG_OPTS -cp "$CP" -Djava.awt.headless=true $SYSPROPS -Dlog4j.configuration=file:$RELEASE_ROOT/config/log4j-startup.properties -Dsoa.root.dir=$RELEASE_ROOT -Dfelix.cache.rootdir=$INSTANCE_ROOT -Dfelix.config.properties=file:$INSTANCE_ROOT/config.properties -Dfelix.system.properties=file:$INSTANCE_ROOT/system.properties -Dorg.osgi.framework.storage=cache org.apache.felix.main.Main > log/stdout.log 2>&1 & JPID=$! echo $JPID > $PIDFILE wait $JPID ERRORCODE=$? else $JAVA_CMD $JAVA_OPTS $DEBUG_OPTS -cp "$CP" -Djava.awt.headless=true $SYSPROPS -Dlog4j.configuration=file:$RELEASE_ROOT/config/log4j-startup.properties -Dsoa.root.dir=$RELEASE_ROOT -Dfelix.cache.rootdir=$INSTANCE_ROOT -Dfelix.config.properties=file:$INSTANCE_ROOT/config.properties -Dfelix.system.properties=file:$INSTANCE_ROOT/system.properties -Dorg.osgi.framework.storage=cache org.apache.felix.main.Main ERRORCODE=$? fi if [ -f $PIDFILE ] ; then rm -f $PIDFILE fi done LIBPATH=$saveLIBPATH LD_LIBRARY_PATH=$saveLD_LIBRARY_PATH export LIBPATH LD_LIBRARY_PATH fi