diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-02-18 13:55:07 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-02-18 15:29:00 -0800 |
commit | 9e7dce270bff6e15765019073b8ad437d5be6581 (patch) | |
tree | 4a29d4949d974b1d5b7b0d2f1a2879a001442245 /debian/vyatta-quagga.init.d | |
parent | 9e1b021c463ac963f6aad3e7ac9e81b500ca93f2 (diff) | |
download | quagga-9e7dce270bff6e15765019073b8ad437d5be6581.tar.bz2 quagga-9e7dce270bff6e15765019073b8ad437d5be6581.tar.xz |
Modified version of daemon startup
Start daemons at init time based on configuration.
This is easier than hacking it into the template priorities
Diffstat (limited to 'debian/vyatta-quagga.init.d')
-rwxr-xr-x | debian/vyatta-quagga.init.d | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/debian/vyatta-quagga.init.d b/debian/vyatta-quagga.init.d index 88d5eb65..b83b3600 100755 --- a/debian/vyatta-quagga.init.d +++ b/debian/vyatta-quagga.init.d @@ -31,39 +31,51 @@ for dir in $pid_dir $log_dir ; do fi done -pidfile=$pid_dir/zebra.pid - vyatta_quagga_start () { - log_daemon_msg "Starting routing manager" "zebra" - start-stop-daemon --start --quiet --oknodo \ - --chdir $log_dir \ - --exec /usr/sbin/vyatta-zebra \ - -- -d -P 0 -l -S -s 1048576 -i $pidfile - log_end_msg $? + local -a daemons + if [ $# -gt 0 ] ; then + daemons=( $* ) + else + daemons=( zebra ) + daemons+=( `/opt/vyatta/bin/vyatta-show-protocols configured` ) + daemons+=( watchquagga ) + fi + + log_action_begin_msg "Starting routing services" + for daemon in ${daemons[@]} ; do + log_action_cont_msg "$daemon" + /opt/vyatta/sbin/quagga-manager start $daemon || \ + ( log_action_end_msg 1 ; return 1 ) + done + + log_action_end_msg 0 } vyatta_quagga_stop () { - log_action_begin_msg "Stopping routing manager" - for daemon in bgpd isisd ospfd ospf6d ripd ripngd - do - pidfile=$pid_dir/${daemon}.pid - if [ -f $pidfile ]; then - log_action_cont_msg "$daemon" - start-stop-daemon --stop --quiet --oknodo \ - --exec /usr/sbin/vyatta-${daemon} - rm $pidfile - fi + local -a daemons + if [ $# -gt 0 ] ; then + daemons=( $* ) + else + daemons=( watchquagga ) + daemons+=( `/opt/vyatta/bin/vyatta-show-protocols configured` ) + daemons+=( zebra ) + fi + + log_action_begin_msg "Stopping routing services" + for daemon in ${daemons[@]} ; do + log_action_cont_msg "$daemon" + /opt/vyatta/sbin/quagga-manager stop $daemon done - log_action_cont_msg "zebra" - start-stop-daemon --stop --quiet --oknodo --retry 2 --exec /usr/sbin/vyatta-zebra log_action_end_msg $? - log_begin_msg "Removing all Quagga Routes" - ip route flush proto zebra - log_end_msg $? + if echo ${daemons[@]} | grep -q zebra ; then + log_begin_msg "Removing all Quagga Routes" + ip route flush proto zebra + log_end_msg $? + fi } case "$action" in |