#!/bin/sh
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
# Get standard environment variables
PRGDIR=`dirname "$PRG"`
[ -z "$APP_HOME" ] && APP_HOME=`cd "$PRGDIR" >/dev/null; pwd`
[ -z "$APP_PID" ] && APP_PID=$APP_HOME/pid
FILE_LIST=`ls ${APP_HOME}`
JAR_FILE=""
LOG_FILE=""
for FILE in $FILE_LIST
do
if [ "${FILE##*.}" = "jar" ]; then
[ -n "$JAR_FILE" ] && echo "failed, due to more then one jar...." && exit
JAR_FILE="${APP_HOME}/${FILE}"
LOG_FILE="${FILE%.*}.log"
fi
done
if [ -z $JAR_FILE ]; then
echo "Error : no jar file in $APP_HOME"
exit
fi
if [ -f "$APP_PID" ]; then
PID=`cat $APP_PID`
rm -rf $APP_PID
kill -9 $PID
fi
OPTS="-Xmx1024m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError -Xloggc:gc.log"
nohup java $DEBUG -jar $OPTS ${JAR_FILE} >>$APP_HOME/${LOG_FILE} 2>&1 &
PID=$!
echo $PID > ${APP_PID}
if [ ! -f $APP_HOME/${LOG_FILE} ]; then
echo "begin....." >>$APP_HOME/${LOG_FILE}
fi
tail -fn 400 $APP_HOME/${LOG_FILE}