#!/bin/bash
# chkconfig: 2345 17 83

### BEGIN INIT INFO
# Provides: watchquagga
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Quagga watchdog
# Description: Quagga watchdog for use with Zebra
### END INIT INFO

# source function library
. /lib/lsb/init-functions

# quagga command line options
. /etc/default/quagga

RETVAL=0
PROG="watchquagga"
cmd=/usr/sbin/watchquagga
LOCK_FILE=/var/lock/quagga/watchquagga

[ -d /var/lock/quagga ] || mkdir /var/lock/quagga
[ -d /run/quagga ] || ( mkdir /run/quagga && chown quagga:quagga /run/quagga )

case "$1" in
  start)
	# Check that there are daemons to be monitored.
	[ -z "$WATCH_DAEMONS" ] && exit 0

	log_daemon_msg "Starting $PROG" "$PROG"
	start_daemon $cmd -d $WATCH_OPTS $WATCH_DAEMONS
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch $LOCK_FILE
	log_end_msg $RETVAL
	;;
  stop)
	log_daemon_msg "Shutting down $PROG" "$PROG"
	killproc -p /run/quagga/$PROG.pid $cmd
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
	log_end_msg $RETVAL
	;;
  restart|reload|force-reload)
	$0 stop
	$0 start
	RETVAL=$?
	;;
  condrestart|try-restart)
	if [ -f $LOCK_FILE ]; then
		$0 stop
		$0 start
	fi
	RETVAL=$?
	;;
  status)
	status_of_proc -p /run/quagga/$PROG.pid $cmd
	RETVAL=$?
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
	exit 2
esac

exit $RETVAL
