Provided by: quagga_0.99.22.4-3ubuntu1_amd64 bug

NAME

       watchquagga - a program to monitor the status of quagga daemons

SYNOPSIS

       watchquagga [option...]  daemon...
       watchquagga -h | -v

DESCRIPTION

       watchquagga  is a watchdog program that monitors the status of supplied quagga daemons and
       tries to restart them in case they become unresponsive or shut down.

       To determine whether a daemon is running, it tries to connect to  the  daemon's  VTY  UNIX
       stream  socket,  and  send  echo  commands  to ensure the daemon responds. When the daemon
       crashes, EOF is received from the socket, so that watchquagga can react immediately.

       This program can run in one of the following 5 modes:

       Mode 0: monitor
              In this mode, the program serves as a monitor and reports status changes.

              Example usage: watchquagga -d zebra ospfd bgpd

       Mode 1: global restart
              In this mode, whenever a daemon hangs or crashes, the  given  command  is  used  to
              restart all watched daemons.

              Example usage: watchquagga -dz \
              -R '/sbin/service zebra restart; /sbin/service ospfd restart' \
              zebra ospfd

       Mode 2: individual daemon restart
              In  this mode, whenever a single daemon hangs or crashes, the given command is used
              to restart this daemon only.

              Example usage: watchquagga -dz -r '/sbin/service %s restart' \
              zebra ospfd bgpd

       Mode 3: phased zebra restart
              In this mode, whenever a single daemon hangs or crashes, the given command is  used
              to  restart this daemon only. The only exception is the zebra daemon; in this case,
              the following steps are taken: (1) all other daemons  are  stopped,  (2)  zebra  is
              restarted, and (3) other daemons are started again.

              Example usage: watchquagga -adz -r '/sbin/service %s restart' \
              -s '/sbin/service %s start' \
              -k '/sbin/service %s stop' zebra ospfd bgpd

       Mode 4: phased global restart for any failure
              In  this  mode,  whenever a single daemon hangs or crashes, the following steps are
              taken: (1) all other daemons are stopped, (2) zebra is  restarted,  and  (3)  other
              daemons are started again.

              Example usage: watchquagga -Adz -r '/sbin/service %s restart' \
              -s '/sbin/service %s start' \
              -k '/sbin/service %s stop' zebra ospfd bgpd

       Important:  It is believed that mode 2 (individual daemon restart) is not safe, and mode 3
       (phased zebra restart) may not be safe with certain routing daemons.

       In order to avoid restarting the daemons in quick succession, you can supply the -m and -M
       options  to  set  the minimum and maximum delay between the restart commands.  The minimum
       restart delay is recalculated each time a restart is attempted.  If  the  time  since  the
       last  restart attempt exceeds twice the value of -M, the restart delay is set to the value
       of -m, otherwise the interval is doubled (but capped at the value of -M).

OPTIONS

       -d, --daemon
              Run in daemon mode. When supplied, error messages are sent  to  Syslog  instead  of
              standard output (stdout).

       -S directory, --statedir directory
              Set the VTY socket directory (the default value is "/var/run/quagga").

       -e, --no-echo
              Do  not  ping the daemons to test whether they respond. This option is necessary if
              one or more daemons do not support the echo command.

       -l level, --loglevel level
              Set the logging level (the default value is "6"). The value  should  range  from  0
              (LOG_EMERG)  to 7 (LOG_DEBUG), but higher number can be supplied if extra debugging
              messages are required.

       -m number, --min-restart-interval number
              Set the minimum number of seconds to wait between invocations of the daemon restart
              commands (the default value is "60").

       -M number, --max-restart-interval number
              Set the maximum number of seconds to wait between invocations of the daemon restart
              commands (the default value is "600").

       -i number, --interval number
              Set the status polling interval in seconds (the default value is "5").

       -t number, --timeout number
              Set the unresponsiveness timeout in seconds (the default value is "10").

       -T number, --restart-timeout number
              Set the restart (kill) timeout in seconds (the  default  value  is  "20").  If  any
              background  jobs  are  still  running  after  this period has elapsed, they will be
              killed.

       -r command, --restart command
              Supply a Bourne shell command to restart a single daemon. The command string should
              contain the '%s' placeholder to be substituted with the daemon name.

              Note that -r and -R options are not compatible.

       -s command, --start-command command
              Supply  a  Bourne shell command to start a single daemon. The command string should
              contain the '%s' placeholder to be substituted with the daemon name.

       -k command, --kill-command command
              Supply a Bourne shell command to stop a single daemon. The  command  string  should
              contain the '%s' placeholder to be substituted with the daemon name.

       -R, --restart-all
              When  one or more daemons are shut down, try to restart them using the Bourne shell
              command supplied on the command line.

              Note that -r and -R options are not compatible.

       -z, --unresponsive-restart
              When a daemon is in an unresponsive state, treat it as  being  shut  down  for  the
              restart purposes.

       -a, --all-restart
              When  zebra  hangs  or crashes, restart all daemons taking the following steps: (1)
              stop all other daemons, (2) restart zebra, and (3) start other daemons again.

              Note that this option also requires -r, -s, and -k options to be specified.

       -A, --always-all-restart
              When any daemon (i.e., not just zebra) hangs or crashes, restart all daemons taking
              the  following  steps: (1) stop all other daemons, (2) restart zebra, and (3) start
              other daemons again.

              Note that this option also requires -r, -s, and -k options to be specified.

       -p filename, --pid-file filename
              Set    the    process    identifier    filename    (the    default     value     is
              "/var/run/quagga/watchquagga.pid").

       -b string, --blank-string string
              When  the  supplied  string  is  found  in any of the command line option arguments
              (i.e., -r, -s, -k, or -R), replace it with a space.

              This is an ugly hack to circumvent problems with passing the command line arguments
              containing embedded spaces.

       -v, --version
              Display the version information and exit.

       -h, --help
              Display the usage information and exit.

SEE ALSO

       zebra(8), bgpd(8), isisd(8), ospfd(8), ospf6d(8), ripd(8), ripngd(8)

       See the project homepage at <http://www.quagga.net/>.

AUTHORS

       Copyright 2004 Andrew J. Schorr

                                            July 2010                              WATCHQUAGGA(8)