diff options
Diffstat (limited to 'network/quagga/rc.watchquagga')
-rw-r--r-- | network/quagga/rc.watchquagga | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/network/quagga/rc.watchquagga b/network/quagga/rc.watchquagga new file mode 100644 index 0000000000..0f9736e2de --- /dev/null +++ b/network/quagga/rc.watchquagga @@ -0,0 +1,40 @@ +#!/bin/sh + +start() { + if [ -x /usr/sbin/watchquagga ]; then + + for i in zebra bgpd ripd ospfd ripngd ospf6d isisd; do + if [ -e /var/run/quagga/$i.pid ] ; then + WATCHSERVICES="${WATCHSERVICES} ${i}" + fi + done + + echo -n "Starting watchquagga: " + /usr/sbin/watchquagga -dz -R '/etc/rc.d/rc.quagga restart' $WATCHSERVICES || exit 1 + echo "done" + fi +} + +stop() { + echo -n "Stopping watchquagga: " + killall watchquagga 2>/dev/null && echo -n "done" || echo -n "not started" + echo +} + +restart() { + stop && sleep 2s && start +} + +case "$1" in + 'start') + start + ;; + 'stop') + stop + ;; + 'restart') + restart + ;; + *) + echo "usage $0 start|stop|restart" +esac |