Provided by: quagga_0.99.22.4-3ubuntu1.5_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)