redhat: update initscripts
Taken from Fedora packaging with additional fixes.
* redhat/*.init: make all initscripts LSB-compliant;
store the daemon configuration file location in $CONF_FILE,
and perform existence testing before starting the daemon
* redhat/babeld.init: add initscript for Babel routing engine
* redhat/quagga.sysconfig: add command-line options for babeld;
remove the daemon configuration file locations from $*_OPTS;
clarify directions for configuring watchquagga
* redhat/Makefile.am: add babeld.init to distribution
Signed-off-by: David Ward <david.ward@ll.mit.edu>
Signed-off-by: David Lamparter <equinox@diac24.net>
diff --git a/redhat/Makefile.am b/redhat/Makefile.am
index 6a3d38f..e037ec5 100644
--- a/redhat/Makefile.am
+++ b/redhat/Makefile.am
@@ -1,4 +1,4 @@
EXTRA_DIST = quagga.pam quagga.sysconfig quagga.spec quagga.logrotate \
zebra.init ripd.init ospfd.init ripngd.init ospf6d.init bgpd.init \
- isisd.init watchquagga.init quagga.pam.stack
+ isisd.init babeld.init watchquagga.init quagga.pam.stack
diff --git a/redhat/babeld.init b/redhat/babeld.init
new file mode 100644
index 0000000..76e8e5e
--- /dev/null
+++ b/redhat/babeld.init
@@ -0,0 +1,72 @@
+#!/bin/bash
+# chkconfig: - 16 84
+# config: /etc/quagga/babeld.conf
+
+### BEGIN INIT INFO
+# Provides: babeld
+# Short-Description: Babel routing engine
+# Description: Babel routing engine for use with Zebra
+### END INIT INFO
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# quagga command line options
+. /etc/sysconfig/quagga
+
+RETVAL=0
+PROG="babeld"
+cmd=babeld
+LOCK_FILE=/var/lock/subsys/babeld
+CONF_FILE=/etc/quagga/babeld.conf
+
+case "$1" in
+ start)
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $BABELD_OPTS -f $CONF_FILE
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
+ echo
+ ;;
+ stop)
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
+ echo
+ ;;
+ 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 $cmd
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
+esac
+
+exit $RETVAL
diff --git a/redhat/bgpd.init b/redhat/bgpd.init
index ef59c2a..e18511a 100644
--- a/redhat/bgpd.init
+++ b/redhat/bgpd.init
@@ -1,10 +1,12 @@
#!/bin/bash
-#
-# chkconfig: 2345 16 84
-# description: A BGPv4, BGPv4+, BGPv4- routing engine for use with Zebra
-#
-# processname: bgpd
-# config: /etc/zebra/bgpd.conf
+# chkconfig: - 16 84
+# config: /etc/quagga/bgpd.conf
+
+### BEGIN INIT INFO
+# Provides: bgpd
+# Short-Description: BGP routing engine
+# Description: BGP routing engine for use with Zebra
+### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
@@ -15,49 +17,56 @@
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/bgpd.conf ] || exit 0
-
RETVAL=0
-prog="bgpd"
+PROG="bgpd"
+cmd=bgpd
+LOCK_FILE=/var/lock/subsys/bgpd
+CONF_FILE=/etc/quagga/bgpd.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/bgpd -d $BGPD_OPTS
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $BGPD_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bgpd
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc bgpd
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bgpd
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/bgpd ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status bgpd
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/isisd.init b/redhat/isisd.init
index 0d762c0..9e80530 100644
--- a/redhat/isisd.init
+++ b/redhat/isisd.init
@@ -1,61 +1,72 @@
#!/bin/bash
-#
-# chkconfig: 2345 16 84
-# description: An ISIS routing engine for use with Quagga
-#
-# processname: isisd
+# chkconfig: - 16 84
# config: /etc/quagga/isisd.conf
+### BEGIN INIT INFO
+# Provides: isisd
+# Short-Description: IS-IS routing engine
+# Description: IS-IS routing engine for use with Zebra
+### END INIT INFO
+
# source function library
. /etc/rc.d/init.d/functions
# Get network config
. /etc/sysconfig/network
-# Check that networking is up.
-[ "${NETWORKING}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/isisd.conf ] || exit 0
+# quagga command line options
+. /etc/sysconfig/quagga
RETVAL=0
-
-prog="isisd"
+PROG="isisd"
+cmd=isisd
+LOCK_FILE=/var/lock/subsys/isisd
+CONF_FILE=/etc/quagga/isisd.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/isisd -d
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $ISISD_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/isisd
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc isisd
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/isisd
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/isisd ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status isisd
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/ospf6d.init b/redhat/ospf6d.init
index c84ce67..4133b4a 100644
--- a/redhat/ospf6d.init
+++ b/redhat/ospf6d.init
@@ -1,11 +1,13 @@
#!/bin/bash
-#
-# chkconfig: 2345 16 84
-# description: An OSPF routing engine for use with Zebra and IPv6
-#
-# processname: ospf6d
+# chkconfig: - 16 84
# config: /etc/quagga/ospf6d.conf
+### BEGIN INIT INFO
+# Provides: ospf6d
+# Short-Description: OSPF routing engine for IPv6
+# Description: OSPF routing engine for use with Zebra and IPv6
+### END INIT INFO
+
# source function library
. /etc/rc.d/init.d/functions
@@ -15,49 +17,56 @@
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING_IPV6}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/ospf6d.conf ] || exit 0
-
RETVAL=0
-prog="ospf6d"
+PROG="ospf6d"
+cmd=ospf6d
+LOCK_FILE=/var/lock/subsys/ospf6d
+CONF_FILE=/etc/quagga/ospf6d.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/ospf6d -d $OSPF6D_OPTS
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $OSPF6D_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospf6d
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc ospf6d
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospf6d
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/ospf6d ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status ospf6d
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $prog {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/ospfd.init b/redhat/ospfd.init
index 911f7aa..d964f38 100644
--- a/redhat/ospfd.init
+++ b/redhat/ospfd.init
@@ -1,11 +1,13 @@
#!/bin/bash
-#
-# chkconfig: 2345 16 84
-# description: An OSPF v2 routing engine for use with Zebra
-#
-# processname: ospfd
+# chkconfig: - 16 84
# config: /etc/quagga/ospfd.conf
+### BEGIN INIT INFO
+# Provides: ospfd
+# Short-Description: OSPF routing engine
+# Description: OSPF routing engine for use with Zebra
+### END INIT INFO
+
# source function library
. /etc/rc.d/init.d/functions
@@ -15,50 +17,56 @@
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/ospfd.conf ] || exit 0
-
RETVAL=0
-
-prog="ospfd"
+PROG="ospfd"
+cmd=ospfd
+LOCK_FILE=/var/lock/subsys/ospfd
+CONF_FILE=/etc/quagga/ospfd.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/ospfd -d $OSPFD_OPTS
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $OSPFD_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospfd
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc ospfd
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospfd
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/ospfd ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status ospfd
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/quagga.sysconfig b/redhat/quagga.sysconfig
index 9e9da5e..2befc0f 100644
--- a/redhat/quagga.sysconfig
+++ b/redhat/quagga.sysconfig
@@ -1,18 +1,19 @@
#
# Default: Bind all daemon vtys to the loopback(s) only
#
-QCONFDIR="/etc/quagga"
-BGPD_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/bgpd.conf"
-OSPF6D_OPTS="-A ::1 -f ${QCONFDIR}/ospf6d.conf"
-OSPFD_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/ospfd.conf"
-RIPD_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/ripd.conf"
-RIPNGD_OPTS="-A ::1 -f ${QCONFDIR}/ripngd.conf"
-ZEBRA_OPTS="-A 127.0.0.1 -f ${QCONFDIR}/zebra.conf"
-ISISD_OPTS="-A ::1 -f ${QCONFDIR}/isisd.conf"
+BABELD_OPTS="-A 127.0.0.1"
+BGPD_OPTS="-A 127.0.0.1"
+ISISD_OPTS="-A ::1"
+OSPF6D_OPTS="-A ::1"
+OSPFD_OPTS="-A 127.0.0.1"
+RIPD_OPTS="-A 127.0.0.1"
+RIPNGD_OPTS="-A ::1"
+ZEBRA_OPTS="-A 127.0.0.1"
-# Watchquagga configuration (please check timer values before using):
-WATCH_OPTS=""
-WATCH_DAEMONS="zebra bgpd ospfd ospf6d ripd ripngd"
-# To enable restarts, uncomment this line (but first be sure to edit
-# the WATCH_DAEMONS line to reflect the daemons you are actually using):
-#WATCH_OPTS="-Az -b_ -r/sbin/service_%s_restart -s/sbin/service_%s_start -k/sbin/service_%s_stop"
+# Watchquagga configuration
+#
+# Uncomment and edit this line to reflect the daemons you are actually using:
+#WATCH_DAEMONS="zebra bgpd ospfd ospf6d ripd ripngd"
+#
+# Timer values can be adjusting by editing this line:
+WATCH_OPTS="-Az -b_ -r/sbin/service_%s_restart -s/sbin/service_%s_start -k/sbin/service_%s_stop"
diff --git a/redhat/ripd.init b/redhat/ripd.init
index 7664221..9b412cb 100644
--- a/redhat/ripd.init
+++ b/redhat/ripd.init
@@ -1,11 +1,13 @@
#!/bin/bash
-#
-# chkconfig: 2345 16 84
-# description: A RIP routing engine for use with Zebra
-#
-# processname: ripd
+# chkconfig: - 16 84
# config: /etc/quagga/ripd.conf
+### BEGIN INIT INFO
+# Provides: ripd
+# Short-Description: RIP routing engine
+# Description: RIP routing engine for use with Zebra
+### END INIT INFO
+
# source function library
. /etc/rc.d/init.d/functions
@@ -15,49 +17,56 @@
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/ripd.conf ] || exit 0
-
RETVAL=0
-prog="ripd"
+PROG="ripd"
+cmd=ripd
+LOCK_FILE=/var/lock/subsys/ripd
+CONF_FILE=/etc/quagga/ripd.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/ripd -d $RIPD_OPTS
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $RIPD_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ripd
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc ripd
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ripd
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/ripd ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status ripd
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/ripngd.init b/redhat/ripngd.init
index 57ae928..88f346f 100644
--- a/redhat/ripngd.init
+++ b/redhat/ripngd.init
@@ -1,11 +1,13 @@
#!/bin/bash
-#
-# chkconfig: 2345 16 84
-# description: A RIP routing engine for use with Zebra and IPv6
-#
-# processname: ripngd
+# chkconfig: - 16 84
# config: /etc/quagga/ripngd.conf
+### BEGIN INIT INFO
+# Provides: ripngd
+# Short-Description: RIP routing engine for IPv6
+# Description: RIP routing engine for use with Zebra and IPv6
+### END INIT INFO
+
# source function library
. /etc/rc.d/init.d/functions
@@ -15,49 +17,56 @@
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING_IPV6}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/ripngd.conf ] || exit 0
-
RETVAL=0
-prog="ripngd"
+PROG="ripngd"
+cmd=ripngd
+LOCK_FILE=/var/lock/subsys/ripngd
+CONF_FILE=/etc/quagga/ripngd.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/ripngd -d $RIPNGD_OPTS
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $RIPNGD_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ripngd
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc ripngd
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ripngd
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/ripngd ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status ripngd
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/watchquagga.init b/redhat/watchquagga.init
index 74299e3..dda3506 100644
--- a/redhat/watchquagga.init
+++ b/redhat/watchquagga.init
@@ -1,9 +1,11 @@
#!/bin/bash
-#
# chkconfig: 2345 17 83
-# description: A Quagga watchdog for use with Zebra
-#
-# processname: watchquagga
+
+### BEGIN INIT INFO
+# Provides: watchquagga
+# Short-Description: Quagga watchdog
+# Description: Quagga watchdog for use with Zebra
+### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
@@ -14,49 +16,51 @@
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING}" = "no" ] && exit 0
-
-# Check that there are daemons to be monitored.
-[ -z "$WATCH_DAEMONS" ] && exit 0
-
RETVAL=0
-prog="watchquagga"
+PROG="watchquagga"
+cmd=watchquagga
+LOCK_FILE=/var/lock/subsys/watchquagga
case "$1" in
start)
- echo -n $"Starting $prog: "
- daemon /usr/sbin/watchquagga -d $WATCH_OPTS $WATCH_DAEMONS
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+
+ # Check that there are daemons to be monitored.
+ [ -z "$WATCH_DAEMONS" ] && exit 1
+
+ echo -n $"Starting $PROG: "
+ daemon $cmd -d $WATCH_OPTS $WATCH_DAEMONS
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/watchquagga
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc watchquagga
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/watchquagga
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/watchquagga ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status watchquagga
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL
diff --git a/redhat/zebra.init b/redhat/zebra.init
index 8caae1f..4242b16 100644
--- a/redhat/zebra.init
+++ b/redhat/zebra.init
@@ -1,64 +1,73 @@
#!/bin/bash
-#
-# chkconfig: 2345 15 85
-# description: GNU Zebra routing manager
-#
-# processname: zebra
+# chkconfig: - 15 85
# config: /etc/quagga/zebra.conf
+### BEGIN INIT INFO
+# Provides: zebra
+# Short-Description: GNU Zebra routing manager
+# Description: GNU Zebra routing manager
+### END INIT INFO
+
# source function library
. /etc/rc.d/init.d/functions
+# Get network config
+. /etc/sysconfig/network
+
# quagga command line options
. /etc/sysconfig/quagga
-# Check that networking is up.
-[ "${NETWORKING}" = "no" ] && exit 0
-
-# The process must be configured first.
-[ -f /etc/quagga/zebra.conf ] || exit 0
-
RETVAL=0
-
-prog="zebra"
+PROG="zebra"
+cmd=zebra
+LOCK_FILE=/var/lock/subsys/zebra
+CONF_FILE=/etc/quagga/zebra.conf
case "$1" in
start)
- echo -n $"Starting $prog: "
+ # Check that networking is up.
+ [ "${NETWORKING}" = "no" ] && exit 1
+ # The process must be configured first.
+ [ -f $CONF_FILE ] || exit 6
+ if [ `id -u` -ne 0 ]; then
+ echo $"Insufficient privilege" 1>&2
+ exit 4
+ fi
+
+ echo -n $"Starting $PROG: "
/sbin/ip route flush proto zebra
-
- daemon /usr/sbin/zebra -d $ZEBRA_OPTS
+ daemon $cmd -d $ZEBRA_OPTS -f $CONF_FILE
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zebra
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
echo
;;
stop)
- echo -n $"Shutting down $prog: "
- killproc zebra
+ echo -n $"Shutting down $PROG: "
+ killproc $cmd
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zebra
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
echo
;;
- restart|reload)
- $0 stop
- $0 start
+ restart|reload|force-reload)
+ $0 stop
+ $0 start
RETVAL=$?
- ;;
- condrestart)
- if [ -f /var/lock/subsys/zebra ]; then
- $0 stop
+ ;;
+ condrestart|try-restart)
+ if [ -f $LOCK_FILE ]; then
+ $0 stop
$0 start
- fi
+ fi
RETVAL=$?
- ;;
+ ;;
status)
- status zebra
+ status $cmd
RETVAL=$?
- ;;
+ ;;
*)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
+ echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
+ exit 2
esac
exit $RETVAL