#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          obm-tomcat
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: OBM Tomcat server
# Description:       RHEL init script for the OBM Tomcat server
### END INIT INFO

NAME=obm-tomcat
PIDFILE=/var/run/obm_tomcat.pid
TOMCAT_PATH=/usr/share/tomcat
START_CMD=${TOMCAT_PATH}/bin/catalina.sh

# Source function library.
. /etc/rc.d/init.d/functions

if [ -z "$JAVA_HOME" ]; then
	JAVA_HOME="/usr/lib/jvm/jre-1.7.0"
fi
if [ -z "$SHUTDOWN_TIMEOUT" ]; then
	SHUTDOWN_TIMEOUT=10
fi
if [ -r /etc/sysconfig/i18n ]; then
  . /etc/sysconfig/i18n
  export LANG
fi

JRE_HOME=${JAVA_HOME}
export JAVA_HOME
export JRE_HOME

start() {
    if [ -f $PIDFILE ] ; then
                read kpid < $PIDFILE
                if checkpid $kpid 2>&1; then
                        echo "process already running"
                        return 0
                else
                        echo "pid file found but no process running for pid $kpid, continuing"
                fi
        fi

        echo -n $"Starting $NAME: "
	${START_CMD} start
        
        echo
        return 0
}

stop() {
        echo -n $"Stopping $NAME: "
        count=0;

        if [ -f $PIDFILE ]; then

            read kpid < $PIDFILE
            let kwait=$SHUTDOWN_TIMEOUT

#           Try issuing SIGTERM

            kill -15 $kpid
            until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ]
            do
                echo -n ".";
                sleep 1
                let count=$count+1;
            done

            if [ $count -gt $kwait ]; then
                echo "killing processes which didn't stop after $SHUTDOWN_TIMEOUT seconds"
                kill -9 $kpid
            fi
            rm -f $PIDFILE
        fi
        success
        echo
}

case "$1" in
    start)
        start
        ;;
    
    stop)
        stop
        ;;
    status)
	status -p $PIDFILE obm-tomcat
        ;;
    restart)
        stop
        start
        ;;
    condrestart|try-restart)
        status -p $PIDFILE
        if [ "$?" -eq 0 ] ; then
		stop
		sleep 2
		start
        fi
        ;;
    *)
	echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart}"
esac

exit $ret
