innwatch.ctl - control Usenet supervision by innwatch


   The  file  /etc/news/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:

   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
   delimiter; 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 the control line.  It is used as an
   internal state indicator and in ctlinnd messages to control the server.
   If omitted, 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

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

   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
   intended).  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 directory, /var/spool/news.

   The fourth field specifies the  operator  to  use  to  test  the  value
   returned  above.   It  should  be  one  of  the two letter numeric test
   operators defined in test(1) such as ``eq'', ``lt'' and the like.   The
   leading 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:

          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.

          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 result of the control file is skipped for the current pass.

   The last field specifies the reason  that  is  used  in  those  ctlinnd
   commands  that  require one.  More strictly, it is part of the reason ---
   innwatch appends some information to it.   In  order  to  enable  other
   sites  to  recognize  the  state  of  the local innd server, this field
   should  usually  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
   action  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.


          @@@df .|awk 'NR==2 {print $4}'@lt@10000@throttle@No space
          @@@df -i .|awk 'NR==2 {print $4}'@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 df 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
   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
   assumed to print the current load  average  as  an  integer.   In  more
   practical circumstances, a pipe of uptime into awk is more likely to be


   This file must  be  tailored  for  each  individual  site,  the  sample
   supplied 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.


   Written by <> for InterNetNews.  This is revision 1.5,
   dated 1996/09/06.


   innd(8), ctlinnd(8), news.daily(8).



Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.