#!/bin/sh # # Tomcat For UAS control script # # chkconfig: 2345 61 61 # description: The Kanban Application Server # # Source function library. source /etc/profile #. /etc/rc.d/init.d/functions #export LANG="zh_CN.UTF-8" #JAVA_HOME=/usr/local/jdk1.7.0_55 #export JAVA_HOME=$JAVA_HOME BASE_DIR=/home/uas/program/kanban PROFILE=test MAVEN_URI=http://maven.ubtob.com PORT[0]=8063 PORT[1]=8064 CONTEXT_NAME=kanban-console VERSION=0.0.1-SNAPSHOT WF=$CONTEXT_NAME-$VERSION.war run_cmd(){ local curr=`whoami` local runner=uas if [ $curr == "root" ]; then runuser -l $runner -c "$1" elif [ $curr == $runner ]; then eval $1 fi } start(){ for port in ${PORT[@]};do startPort $port done } stop(){ for port in ${PORT[@]};do stopPort $port done } restart(){ for port in ${PORT[@]};do stopPort $port if [ ! -d $BASE_DIR/$port ]; then mkdir $BASE_DIR/$port fi run_cmd "cp -f $BASE_DIR/$WF $BASE_DIR/$port/$WF" startPort $port SERVICE_STATUS="curl -s -w %{http_code} localhost:$port" while [ "`$SERVICE_STATUS`" = "000" ];do echo "[Port=$port] Wait 5s for current service..." sleep 5 done done } status(){ PID_CMD="ps aux | grep $WF | grep -v 'grep' | awk '{print \$2}'" if [ "`eval ${PID_CMD}`" ]; then ps aux | grep $WF | grep -v 'grep' else echo "Service is not running." fi } update(){ metadata_last=$BASE_DIR/maven-metadata-last.xml metadata=$BASE_DIR/maven-metadata.xml run_cmd "wget -q -O $metadata $MAVEN_URI/artifactory/libs-snapshot-local/com/uas/kanban/$CONTEXT_NAME/maven-metadata.xml" time_last="0" if [ -f $metadata_last ]; then time_last=`cat $metadata_last|grep lastUpdated|awk '{print substr($1,14,14)}'` fi time=`cat $metadata|grep lastUpdated|awk '{print substr($1,14,14)}'` if [ "$time_last" -ne "$time" ]; then rm -rf $metadata_last mv $metadata $metadata_last install fi } install() { rm -rf $BASE_DIR/$WF.bak if [ -f $BASE_DIR/$WF ]; then mv -f $BASE_DIR/$WF $BASE_DIR/$WF.bak fi echo 'Downloading war file...' run_cmd "wget -O $BASE_DIR/$WF $MAVEN_URI/artifactory/libs-snapshot-local/com/uas/kanban/$CONTEXT_NAME/$VERSION/$WF" echo 'Download succeeded' restart } startPort(){ PID_CMD_PORT="ps aux | grep $BASE_DIR/$1/$WF | grep -v 'grep' | awk '{print \$2}'" if [ ! "`eval ${PID_CMD_PORT}`" ]; then echo "[Port=$1] Starting service..." cd $BASE_DIR/$1 run_cmd "nohup java -Dserver.port=$1 -Dspring.profiles.active=$PROFILE -Dserver.context-path=/kanban -server -XX:PermSize=64M -XX:MaxPermSize=128m -jar $BASE_DIR/$1/$WF 1>/dev/null 2>$BASE_DIR/$1/nohup.log &" else echo "[Port=$1] Service is already running." fi } stopPort(){ PID_CMD_PORT="ps aux | grep $BASE_DIR/$1/$WF | grep -v 'grep' | awk '{print \$2}'" if [ "`eval ${PID_CMD_PORT}`" ]; then echo "[Port=$1] Stopping service..." eval ${PID_CMD_PORT} | xargs kill -9 else echo "[Port=$1] Service is not running." fi } case $1 in start) start ;; stop) stop ;; restart) restart ;; status) status ;; update) update ;; install) install ;; *) echo "Usage: $0 {start|stop|restart|status|update|install}" exit 1 ;; esac