David Ward | 7b0df9c | 2012-04-30 11:36:16 -0400 | [diff] [blame] | 1 | .\" This file was originally generated by help2man 1.36. |
| 2 | .TH WATCHQUAGGA 8 "July 2010" |
| 3 | .SH NAME |
| 4 | watchquagga \- a program to monitor the status of quagga daemons |
| 5 | .SH SYNOPSIS |
| 6 | .B watchquagga |
| 7 | .RI [ option ...] |
| 8 | .IR daemon ... |
| 9 | .br |
| 10 | .B watchquagga |
| 11 | .BR \-h " | " \-v |
| 12 | .SH DESCRIPTION |
| 13 | .B watchquagga |
| 14 | is a watchdog program that monitors the status of supplied quagga |
| 15 | .IR daemon s |
| 16 | and tries to restart them in case they become unresponsive or shut down. |
| 17 | .PP |
| 18 | To determine whether a daemon is running, it tries to connect to the |
| 19 | daemon's VTY UNIX stream socket, and send echo commands to ensure the |
| 20 | daemon responds. When the daemon crashes, EOF is received from the socket, |
| 21 | so that watchquagga can react immediately. |
| 22 | .PP |
| 23 | This program can run in one of the following 5 modes: |
| 24 | .TP |
| 25 | .B Mode 0: monitor |
| 26 | In this mode, the program serves as a monitor and reports status changes. |
| 27 | .IP |
| 28 | Example usage: watchquagga \-d zebra ospfd bgpd |
| 29 | .TP |
| 30 | .B Mode 1: global restart |
| 31 | In this mode, whenever a daemon hangs or crashes, the given command is used |
| 32 | to restart all watched daemons. |
| 33 | .IP |
| 34 | Example usage: watchquagga \-dz \e |
| 35 | .br |
| 36 | -R '/sbin/service zebra restart; /sbin/service ospfd restart' \e |
| 37 | .br |
| 38 | zebra ospfd |
| 39 | .TP |
| 40 | .B Mode 2: individual daemon restart |
| 41 | In this mode, whenever a single daemon hangs or crashes, the given command |
| 42 | is used to restart this daemon only. |
| 43 | .IP |
| 44 | Example usage: watchquagga \-dz \-r '/sbin/service %s restart' \e |
| 45 | .br |
| 46 | zebra ospfd bgpd |
| 47 | .TP |
| 48 | .B Mode 3: phased zebra restart |
| 49 | In this mode, whenever a single daemon hangs or crashes, the given command |
| 50 | is used to restart this daemon only. The only exception is the zebra |
| 51 | daemon; in this case, the following steps are taken: (1) all other daemons |
| 52 | are stopped, (2) zebra is restarted, and (3) other daemons are started |
| 53 | again. |
| 54 | .IP |
| 55 | Example usage: watchquagga \-adz \-r '/sbin/service %s restart' \e |
| 56 | .br |
| 57 | \-s '/sbin/service %s start' \e |
| 58 | .br |
| 59 | \-k '/sbin/service %s stop' zebra ospfd bgpd |
| 60 | .TP |
| 61 | .B Mode 4: phased global restart for any failure |
| 62 | In this mode, whenever a single daemon hangs or crashes, the following |
| 63 | steps are taken: (1) all other daemons are stopped, (2) zebra is restarted, |
| 64 | and (3) other daemons are started again. |
| 65 | .IP |
| 66 | Example usage: watchquagga \-Adz \-r '/sbin/service %s restart' \e |
| 67 | .br |
| 68 | \-s '/sbin/service %s start' \e |
| 69 | .br |
| 70 | \-k '/sbin/service %s stop' zebra ospfd bgpd |
| 71 | .PP |
| 72 | Important: It is believed that mode 2 (individual daemon restart) is not |
| 73 | safe, and mode 3 (phased zebra restart) may not be safe with certain |
| 74 | routing daemons. |
| 75 | .PP |
| 76 | In order to avoid restarting the daemons in quick succession, you can |
| 77 | supply the |
| 78 | .B \-m |
| 79 | and |
| 80 | .B \-M |
| 81 | options to set the minimum and maximum delay between the restart commands. |
| 82 | The minimum restart delay is recalculated each time a restart is attempted. |
| 83 | If the time since the last restart attempt exceeds twice the value of |
| 84 | .BR \-M , |
| 85 | the restart delay is set to the value of |
| 86 | .BR \-m , |
| 87 | otherwise the interval is doubled (but capped at the value of |
| 88 | .BR \-M ). |
| 89 | .SH OPTIONS |
| 90 | .TP |
| 91 | .BR \-d ", " \-\-daemon |
| 92 | Run in daemon mode. When supplied, error messages are sent to Syslog |
| 93 | instead of standard output (stdout). |
| 94 | .TP |
| 95 | .BI \-S " directory" "\fR, \fB\-\-statedir " directory |
| 96 | Set the VTY socket |
| 97 | .I directory |
| 98 | (the default value is "/var/run/quagga"). |
| 99 | .TP |
| 100 | .BR \-e ", " \-\-no\-echo |
| 101 | Do not ping the daemons to test whether they respond. This option is |
| 102 | necessary if one or more daemons do not support the echo command. |
| 103 | .TP |
| 104 | .BI \-l " level" "\fR, \fB\-\-loglevel " level |
| 105 | Set the logging |
| 106 | .I level |
| 107 | (the default value is "6"). The value should range from 0 (LOG_EMERG) to 7 |
| 108 | (LOG_DEBUG), but higher number can be supplied if extra debugging messages |
| 109 | are required. |
| 110 | .TP |
| 111 | .BI \-m " number" "\fR, \fB\-\-min\-restart\-interval " number |
| 112 | Set the minimum |
| 113 | .I number |
| 114 | of seconds to wait between invocations of the daemon restart commands (the |
| 115 | default value is "60"). |
| 116 | .TP |
| 117 | .BI \-M " number" "\fR, \fB\-\-max\-restart\-interval " number |
| 118 | Set the maximum |
| 119 | .I number |
| 120 | of seconds to wait between invocations of the daemon restart commands (the |
| 121 | default value is "600"). |
| 122 | .TP |
| 123 | .BI \-i " number" "\fR, \fB\-\-interval " number |
| 124 | Set the status polling interval in seconds (the default value is "5"). |
| 125 | .TP |
| 126 | .BI \-t " number" "\fR, \fB\-\-timeout " number |
| 127 | Set the unresponsiveness timeout in seconds (the default value is "10"). |
| 128 | .TP |
| 129 | .BI \-T " number" "\fR, \fB\-\-restart\-timeout " number |
| 130 | Set the restart (kill) timeout in seconds (the default value is "20"). If |
| 131 | any background jobs are still running after this period has elapsed, they |
| 132 | will be killed. |
| 133 | .TP |
| 134 | .BI \-r " command" "\fR, \fB\-\-restart " command |
| 135 | Supply a Bourne shell |
| 136 | .I command |
| 137 | to restart a single daemon. The command string should contain the '%s' |
| 138 | placeholder to be substituted with the daemon name. |
| 139 | .IP |
| 140 | Note that |
| 141 | .B \-r |
| 142 | and |
| 143 | .B \-R |
| 144 | options are not compatible. |
| 145 | .TP |
| 146 | .BI \-s " command" "\fR, \fB\-\-start\-command " command |
| 147 | Supply a Bourne shell |
| 148 | .I command |
| 149 | to start a single daemon. The command string should contain the '%s' |
| 150 | placeholder to be substituted with the daemon name. |
| 151 | .TP |
| 152 | .BI \-k " command" "\fR, \fB\-\-kill\-command " command |
| 153 | Supply a Bourne shell |
| 154 | .I command |
| 155 | to stop a single daemon. The command string should contain the '%s' |
| 156 | placeholder to be substituted with the daemon name. |
| 157 | .TP |
| 158 | .BR \-R ", " \-\-restart\-all |
| 159 | When one or more daemons are shut down, try to restart them using the |
| 160 | Bourne shell command supplied on the command line. |
| 161 | .IP |
| 162 | Note that |
| 163 | .B \-r |
| 164 | and |
| 165 | .B \-R |
| 166 | options are not compatible. |
| 167 | .TP |
| 168 | .BR \-z ", " \-\-unresponsive\-restart |
| 169 | When a daemon is in an unresponsive state, treat it as being shut down for |
| 170 | the restart purposes. |
| 171 | .TP |
| 172 | .BR \-a ", " \-\-all\-restart |
| 173 | When zebra hangs or crashes, restart all daemons taking the following |
| 174 | steps: (1) stop all other daemons, (2) restart zebra, and (3) start other |
| 175 | daemons again. |
| 176 | .IP |
| 177 | Note that this option also requires |
| 178 | .BR \-r , |
| 179 | .BR \-s , |
| 180 | and |
| 181 | .B \-k |
| 182 | options to be specified. |
| 183 | .TP |
| 184 | .BR \-A ", " \-\-always\-all\-restart |
| 185 | When any daemon (i.e., not just zebra) hangs or crashes, restart all |
| 186 | daemons taking the following steps: (1) stop all other daemons, (2) restart |
| 187 | zebra, and (3) start other daemons again. |
| 188 | .IP |
| 189 | Note that this option also requires |
| 190 | .BR \-r , |
| 191 | .BR \-s , |
| 192 | and |
| 193 | .B \-k |
| 194 | options to be specified. |
| 195 | .TP |
| 196 | .BI \-p " filename" "\fR, \fB\-\-pid\-file " filename |
| 197 | Set the process identifier |
| 198 | .I filename |
| 199 | (the default value is "/var/run/quagga/watchquagga.pid"). |
| 200 | .TP |
| 201 | .BI \-b " string" "\fR, \fB\-\-blank\-string " string |
| 202 | When the supplied |
| 203 | .I string |
| 204 | is found in any of the command line option arguments (i.e., |
| 205 | .BR \-r , |
| 206 | .BR \-s , |
| 207 | .BR \-k , |
| 208 | or |
| 209 | .BR \-R ), |
| 210 | replace it with a space. |
| 211 | .IP |
| 212 | This is an ugly hack to circumvent problems with passing the command line |
| 213 | arguments containing embedded spaces. |
| 214 | .TP |
| 215 | .BR \-v ", " \-\-version |
| 216 | Display the version information and exit. |
| 217 | .TP |
| 218 | .BR \-h ", " \-\-help |
| 219 | Display the usage information and exit. |
| 220 | .SH SEE ALSO |
| 221 | .BR zebra (8), |
| 222 | .BR bgpd (8), |
| 223 | .BR isisd (8), |
| 224 | .BR ospfd (8), |
| 225 | .BR ospf6d (8), |
| 226 | .BR ripd (8), |
| 227 | .BR ripngd (8) |
| 228 | .PP |
| 229 | See the project homepage at <http://www.quagga.net/>. |
| 230 | .SH AUTHORS |
| 231 | Copyright 2004 Andrew J. Schorr |