watchquagga.8 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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