#!/bin/sh
#
# Startup script for webAccess
# Copyright 2006 VMware, Inc.  All rights reserved.
#
# chkconfig: 3 85 15
# description: service -- webAccess web server

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

JRE_HOME=/usr/lib/vmware/webAccess/java/jre1.5.0_18
CATALINA_HOME=/usr/lib/vmware/webAccess/tomcat/apache-tomcat-5.5.27
webAccess=$JRE_HOME/bin/webAccess
watchdog=/usr/bin/vmware-watchdog
productName="VMware ESX Server"
serviceName="$productName webAccess"
webAccessOpts="-server -Xincgc -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-logging-api.jar -Dcatalina.base=$CATALINA_HOME -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_HOME/temp org.apache.catalina.startup.Bootstrap"

webAccess_status() {
  local webAccessPid=`pidof webAccess`
  if [ "$webAccessPid" != '' ]; then
    return 0
  else
    return 1
  fi
}

start_webAccess() {
  echo -n '   '"$serviceName"
  $watchdog -s webAccess -u 30 -q 5 "$webAccess $webAccessOpts start" > /dev/null 2>&1 &

  # wait for tomcat to start
  sleep 3

  if webAccess_status ; then
    echo_success
    echo
  else
    echo_failure
    echo
  fi
}

stop_webAccess() {
  # Shut down the webAccess watchdog
  $watchdog -k webAccess > /dev/null 2>&1

  echo -n '   '"$serviceName"
  # Shut down webAccess itself
  $webAccess $webAccessOpts stop > /dev/null 2>&1

  # wait for tomcat to shutdown
  sleep 3

  if webAccess_status ; then
    echo_failure
    echo
  else
    echo_success
    echo
  fi
}

case $1 in
  start)
        echo "Starting $serviceName:"
        if $watchdog -r webAccess > /dev/null 2>&1 ; then
          echo "$serviceName is already running"
        else
          if webAccess_status ; then
            killall -q webAccess > /dev/null 2>&1
          fi 
          start_webAccess
        fi
        ;;

  stop)
        echo "Stopping $serviceName:"
        stop_webAccess
        ;;

  status)
        status webAccess
        ;;

  restart)
        $0 stop
        $0 start
        ;;

  *)
        echo "Usage: `basename "$0"` {start|stop|status|restart}"
        exit 1
esac

exit 0
