zeus/script/slb-admin-local.sh
2016-07-13 18:06:32 +08:00

139 lines
3 KiB
Bash

#!/bin/bash
APP_NAME="SlbAdmin"
SHUTDOWN_WAIT=10
MAIN_CLASS="com.ctrip.zeus.SlbAdminMain"
ENVIRONMENT_NAME="local"
CONF_BASE_URL="http://localhost:8080/config/api"
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
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
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/../" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
JAVA_OPS="
-DAPP_HOME=$APP_HOME
-Darchaius.deployment.environment=${ENVIRONMENT_NAME}
-Darchaius.configurationSource.additionalUrls=${CONF_BASE_URL}/${APP_NAME}/${ENVIRONMENT_NAME}
-Dserver.www.base-dir=$APP_HOME/www
-Dserver.temp-dir=$APP_HOME/temp
-DCONF_DIR=$APP_HOME/conf/${ENVIRONMENT_NAME}
-Xms256m
-Xmx256m
-Xmn64m
-Xss256k
-XX:PermSize=64m
-XX:MaxPermSize=64m
-XX:MaxDirectMemorySize=128m
-XX:SurvivorRatio=8
-XX:-DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSCompactAtFullCollection
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-Xloggc:$APP_HOME/logs/gc.log
-XX:-OmitStackTraceInFastThrow
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp
-Dfile.encoding=utf-8
-Dcom.sun.management.jmxremote.port=8082
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dsun.net.client.defaultConnectTimeout=10000
-Dsun.net.client.defaultReadTimeout=30000
"
_pid() {
#echo `ps aux | grep $MAIN_CLASS | grep -v grep | awk '{ print $2 }'`
echo `jps | grep $(expr $MAIN_CLASS : ".*\.\(.*\)$")| grep -v Jps | awk '{ print $1 }'`
}
start(){
pid=$(_pid)
if [ -n "$pid" ]
then
echo "$APP_NAME is already running (pid: $pid)"
else
#Start Program
echo "Starting $APP_NAME"
java $JAVA_OPS -classpath $(echo $APP_HOME/lib/* | tr ' ' ':') $MAIN_CLASS 1>$APP_HOME/logs/log.txt 2>$APP_HOME/logs/err.txt &
pid=$(_pid)
if [ -n "$pid" ]
then
echo "$APP_NAME started: $pid"
else
echo "$APP_NAME failed to start"
fi
fi
return 0
}
stop(){
pid=$(_pid)
if [ -n "$pid" ]
then
echo "Stoping $APP_NAME"
kill $pid
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $pid
fi
else
echo "$APP_NAME is not running"
fi
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(_pid)
if [ -n "$pid" ]
then
echo "$APP_NAME is running with pid: $pid"
else
echo "$APP_NAME is not running"
fi
;;
esac
exit 0