#!/bin/sh
# chkconfig: - 98 02
# description: The rebootmgr service is monitoring all virtual servers \
#              and restart them as need. Virtual servers are using \
#              the /sbin/vreboot command to talk with the reboot manager
# processname: rebootmgr
# config: /etc/vservers
#
# $Id: rebootmgr.init,v 1.4 2008/04/29 20:46:28 glen Exp $

. /etc/init.d/functions

[ -n "$UTIL_VSERVER_VARS" ] || UTIL_VSERVER_VARS=/usr/lib64/util-vserver/util-vserver-vars
if [ ! -e "$UTIL_VSERVER_VARS" ] ; then
	echo "Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
	exit 1
fi
. "$UTIL_VSERVER_VARS"

start() {
	if [ ! -f /var/lock/subsys/rebootmgr ] ; then
	    show "Starting the legacy vserver reboot manager"
	    busy
	    cd $__CONFDIR
	    VSERVERS=
	    for serv in *.conf; do
			[ -f "$serv" ] || continue
			serv=`basename $serv .conf`
			if [ -d $__DEFAULT_VSERVERDIR/$serv ] ; then
				VSERVERS="$VSERVERS $serv"
			fi
	    done
	    $_REBOOTMGR --pidfile /var/run/rebootmgr.pid $VSERVERS &
	    touch /var/lock/subsys/rebootmgr
	    ok
	else
	    msg_already_running "legacy vserver reboot manager"
	fi
}

stop() {
	if [ -f /var/lock/subsys/rebootmgr ] ; then
		show "Stopping the legacy vserver reboot manager"
		busy
		kill $(cat /var/run/rebootmgr.pid)
		rm -f /var/lock/subsys/rebootmgr
		rm -f /var/run/rebootmgr.pid
		ok
	else
	    msg_not_running "legacy vserver reboot manager"
	fi
}

RETVAL=0
# See how we were called.
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart)
	stop
	start
	;;
  status)
	if [ -f /var/run/rebootmgr.pid ] ; then
	    if kill -0 $(cat /var/run/rebootmgr.pid); then
			echo rebootmgr is running
	    else
			echo rebootmgr is NOT running
	    fi
	fi
	;;
  *)
	msg_usage "$0 {start|stop|restart|status}"
	exit 3
esac

exit $RETVAL
