Import Upstream version 1.2.2
[quagga-debian.git] / doc / watchquagga.8
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