INNWATCH.CTL(5)



INNWATCH.CTL(5)               File Formats Manual              INNWATCH.CTL(5)

NAME
       innwatch.ctl - control Usenet supervision by innwatch

DESCRIPTION
       The  file  <pathetc in inn.conf>/innwatch.ctl is used to determine what
       actions are taken during the periodic supervisions by innwatch.

       The file consists of a series of lines; blank lines and lines beginning
       with  a  number  sign  (``#'') are ignored.  All other lines consist of
       seven fields, each preceded by a delimiting character, for example:

              :label:state:condition:test:limit:command:reason
       or
              @label@state@condition@test@limit@command@reason

       The delimiter can be any one  of  several  non-alphanumeric  characters
       that does not appear elsewhere in the line; there is no way to quote it
       to include it in any of the fields.  Any of ``!'', ``,'', ``:'', ``@'',
       ``;'',  or  ``?'' is a good choice.  Each line can have a different de-
       limiter; the first character on each line is  the  delimiter  for  that
       line.   White space surrounding delimiters, except before the first, is
       ignored, and does not form part  of  the  fields;  white  space  within
       fields is permitted.  All delimiters must be present.

       The first field is a label for this control line.  It is used as an in-
       ternal state indicator and in ctlinnd messages to control  the  server.
       If this field is empty, the line number is used.

       The  second  field specifies when this control line should be used.  It
       consists of a list of  labels  and  special  indicators,  separated  by
       whitespace.   If the current state matches against any of the labels in
       this field, this line will be used as described below.  The values that
       may be used are:

       -      This  line matches if the current state is the same as the label
              on this line, or if the current state is  ``run'',  the  initial
              state.  This is also the default state if this field is empty.

       +      This line matches if the current state is ``run''.

       *      This line always matches.

       label  This  line  matches  if the current state is the specified ``la-
              bel''.

       -label This line matches if the current  state  is  not  the  specified
              ``label''.

       The  third field specifies a shell command that is invoked if this line
       matches.  Do not use any shell filename expansion  characters  such  as
       ``*'',  ``?'', or ``['' (even quoted, they're not likely to work as in-
       tended).  If the command succeeds, as indicated by its exit status,  it
       is  expected to have printed a single integer to standard output.  This
       gives the value of this control line, to be used below.  If the command
       fails,  the  line is ignored.  The command is executed with its current
       directory  set  to  the  news  spool  articles  directory,   <patharti-
       cles in inn.conf>.

       The  fourth  field  specifies the operator to use to test the value re-
       turned above.  It should be one of the two letter numeric  test  opera-
       tors defined in test(1) such as ``eq'', ``lt'' and the like.  The lead-
       ing dash (``-'') should not be included.

       The fifth field specifies a constant with which to  compare  the  value
       using the operator just defined.  This is done by invoking the command:

              test value -operator constant

       The line is said to ``succeed'' if it returns true.

       The sixth field specifies what should be done if the line succeeds, and
       in some cases if it fails.  Any of the following words may be used:

       throttle
              Causes innwatch to throttle the server if  this  line  succeeds.
              It also sets the state to the value of the line's label.  If the
              line fails, and the state was previously equal to the  label  on
              this  line (that is, this line had previously succeeded), then a
              go command will be sent to the server, and innwatch will  return
              to the ``run'' state.  The ``throttle'' is only performed if the
              current state is ``run'' or a state other than the label of this
              line, regardless of whether the command succeeds.

       pause  Is identical to ``throttle'' except that the server is paused.

       shutdown
              Sends a ``shutdown'' command to the server.  It is for emergency
              use only.

       flush  Sends a ``flush'' command to the server.

       go     Causes innwatch to send a ``go'' command to the  server  and  to
              set the state to ``run''.

       exit   Causes innwatch to exit.

       skip   The  remainder  of  the  control file is skipped for the current
              pass.

       The last field specifies the reason that is used in those ctlinnd  com-
       mands that require one.  More strictly, it is part of the reason -- in-
       nwatch appends some information to it.  In order to enable other  sites
       to recognize the state of the local innd server, this field should usu-
       ally be set to one of several standard values.  Use ``No space'' if the
       server is rejecting articles because of a lack of filesystem resources.
       Use ``loadav'' if the server is rejecting articles because of a lack of
       CPU resources.

       Once  innwatch  has  taken  some action as a consequence of its control
       line, it skips the rest of the control file for this pass.  If the  ac-
       tion  was to restart the server (that is, issue a ``go'' command), then
       the next pass will commence almost immediately, so  that  innwatch  can
       discover  any  other  condition that may mean that the server should be
       suspended again.

EXAMPLES
              @@@inndf .@lt@10000@throttle@No space
              @@@inndf -i .@lt@1000@throttle@No space (inodes)

       The first line causes the server to be  throttled  if  the  free  space
       drops  below  10000  units  (using  whatever  units inndf(8) uses), and
       restarted again when free space increases above the threshold.

       The second line does the same for inodes.

       The next three lines act as a group and should appear in the  following
       order.   It  is  easier to explain them, however, if they are described
       from the last up.

              !load!load hiload!loadavg!lt!5!go!
              :hiload:+ load:loadavg:gt:8:throttle:loadav
              /load/+/loadavg/ge/6/pause/loadav

       The final line causes the server to be paused if  innwatch  is  in  the
       ``run''  state and the load average rises to, or above, six.  The state
       is set to ``load'' when this happens.  The  previous  line  causes  the
       server  to  be  throttled  when  innwatch is in the ``run'' or ``load''
       state, and the load average rises above eight.  The  state  is  set  to
       ``hiload'' when this happens.  Note that innwatch can switch the server
       from ``paused'' to ``throttled'' if the load average rises  from  below
       six  to between six and seven, and then to above eight.  The first line
       causes the server to be sent a ``go'' command if  innwatch  is  in  the
       ``load'' or ``hiload'' state, and the load average drops below five.

       Note that all three lines assume a mythical command loadavg that is as-
       sumed to print the current load average as an integer.  In more practi-
       cal  circumstances, a pipe of uptime into awk is more likely to be use-
       ful.

BUGS
       This file must be tailored for each individual site,  the  sample  sup-
       plied  is  truly  no more than a sample.  The file should be ordered so
       that the more common problems are tested first.

       The ``run'' state is not actually identified by  the  label  with  that
       three letter name, and using it will not work as expected.

       Using  an ``unusual'' character for the delimiter such as ``('', ``*'',
       ``&'', ```'', ``''', and the like, is likely to  lead  to  obscure  and
       hard to locate bugs.

HISTORY
       Written  by  <kre@munnari.oz.au>  for  InterNetNews.   This is revision
       5909, dated 2002-12-03.

SEE ALSO
       inn.conf(5), innd(8), inndf(8), ctlinnd(8), news.daily(8).

                                                               INNWATCH.CTL(5)

Man(1) output converted with man2html
list of all man pages