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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>