#!/bin/sh
#chkconfig:345 61 61
#description:Apache Tomcat CAS

export JAVA_HOME="/opt/java/jrockit-jdk1.6.0_45-R28.2.7-4.1.0/jre"

TOMCAT_HOME="/opt/uniauth-core-v4.0.0/tomcat/tomcat-cas"

#stop

stop(){  
	pid=`ps -ef | grep $TOMCAT_HOME |grep -v 'grep' |  awk '{print $2}'`
	test "$pid" != "" && kill $pid && echo "Stop Tomcat($TOMCAT_HOME) Successful!" || echo "Stop Tomcat($TOMCAT_HOME) Failed!"
    echo
}

#start
start(){
	$TOMCAT_HOME/bin/startup.sh && echo "Start Tomcat($TOMCAT_HOME) Successful!"
	echo  
}

#status
status(){
	pid=`ps -ef | grep $TOMCAT_HOME |grep -v 'grep' |  awk '{print $2}'`
	echo "$TOMCAT_HOME - $pid"  
}

case "$1" in  
	start)  
		echo "Start Tomcat($TOMCAT_HOME)"  
		echo  
		start  
	echo  
	;;  
	stop)  
		echo "Stop Tomcat($TOMCAT_HOME)"  
		echo  
		stop  
	echo  
	;;  
	restart)  
		echo "Restart Tomcat($TOMCAT_HOME)"  
		echo  
		stop  
		start  
	echo  
	;;  
	status)  
		echo "Pid of Tomcat($TOMCAT_HOME)"  
		status  
	echo  
	;;  
	*)  
		echo $"Usage: $0 {start|stop|restart|status}"  
		exit 1  
	;;  
esac
