summaryrefslogtreecommitdiffstats
path: root/network/quagga/rc.quagga
blob: 883939de074cd51dee517bd03d32b3280c0f289e (plain)
#!/bin/sh

# rc.quagga will try to start any service that has configured a config file in /etc/quagga

start() {

	for SERVICE in zebra bgpd isisd ospfd ospf6d pimd ripd ripngd nhrpd; do
	    if [ -r /etc/quagga/$SERVICE.conf ] ; then
	    echo -n "Starting ${SERVICE}: " && /usr/sbin/${SERVICE} -d && echo "done"
	    fi
	done
}

stop() {

	for SERVICE in zebra bgpd isisd ospfd ospf6d pimd ripd ripngd nhrpd; do
	    echo -n "Stopping ${SERVICE}: "
	    killall $SERVICE 2>/dev/null && echo -n "done" || echo -n "not started"
	    echo
	done
}

restart() {

	stop && sleep 2s && start
	if [ -x /etc/rc.d/rc.watchquagga ] ; then
	    sh /etc/rc.d/rc.watchquagga restart
	fi
}

case "$1" in
	'start')
		start
		;;
	'stop')
		stop
		;;
	'restart')
		restart
		;;
	*)
		echo "usage $0 start|stop|restart"
esac