From a41242bed823db77186ed7d11953cffaa0c3b733 Mon Sep 17 00:00:00 2001 From: David Ward Date: Sun, 29 Apr 2012 16:47:07 -0400 Subject: 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 Signed-off-by: David Lamparter --- redhat/Makefile.am | 2 +- redhat/babeld.init | 72 +++++++++++++++++++++++++++++++++++++++++++++++ redhat/bgpd.init | 73 ++++++++++++++++++++++++++--------------------- redhat/isisd.init | 73 +++++++++++++++++++++++++++-------------------- redhat/ospf6d.init | 71 ++++++++++++++++++++++++++-------------------- redhat/ospfd.init | 72 ++++++++++++++++++++++++++--------------------- redhat/quagga.sysconfig | 29 ++++++++++--------- redhat/ripd.init | 71 ++++++++++++++++++++++++++-------------------- redhat/ripngd.init | 71 ++++++++++++++++++++++++++-------------------- redhat/watchquagga.init | 64 +++++++++++++++++++++-------------------- redhat/zebra.init | 75 +++++++++++++++++++++++++++---------------------- 11 files changed, 407 insertions(+), 266 deletions(-) create mode 100644 redhat/babeld.init diff --git a/redhat/Makefile.am b/redhat/Makefile.am index 6a3d38f7..e037ec57 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 00000000..76e8e5e0 --- /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 ef59c2a6..e18511a0 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 0d762c04..9e805300 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 c84ce678..4133b4a1 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 911f7aa5..d964f38d 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 9e9da5ef..2befc0fd 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 76642219..9b412cb9 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 57ae928c..88f346f8 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 74299e37..dda35066 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 8caae1f1..4242b16c 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 -- cgit v1.2.1