innd, inndstart - InterNetNews daemon


   innd  [  -a  ] [ -c days ] [ -d ] [ -f ] [ -i count ] [ -o count ] [ -l
   size ] [ -m mode ] [ -n flag ] [ -p port ] [ -r ] [ -s ] [ -S host ]  [
   -t timeout ] [ -u ] [ -x ] [ -L ] [ -N ] [ -H count ] [ -T count ] [ -X
   seconds ]

   inndstart [ flags ]


   Innd, the InterNetNews daemon, handles all  incoming  NNTP  feeds.   It
   reads the active(5), newsfeeds(5), and hosts.nntp(5) files into memory.
   It then opens the NNTP port to receive articles from remote sites  (see
   the  ``-p''  option),  a  Unix-domain stream socket to receive articles
   from local processes such as nnrpd(8) and rnews(1), and  a  Unix-domain
   datagram  socket  for use by ctlinnd(8) to direct the server to perform
   certain actions.  It also opens the history(5)  database  and  two  log
   files to replace its standard output and standard error.

   Once the files and sockets have been opened, innd waits for connections
   and data to be ready on its ports by using select(2)  and  non-blocking
   I/O.   If  no  data  is  available, then it will flush its in-core data
   structures.  The default number of seconds to timeout  before  flushing
   is 300 seconds.

   If  innd  gets  an NOSPC error (see intro(2)) while trying to write the
   active file, an article file, or the history  database,  it  will  send
   itself  a  ``throttle''  command.  This will also happen if it gets too
   many I/O errors while writing to any files.

   Any sub-processes spawned by the server will get a nice(2) value of 10.


   -p     If the ``-p'' flag is used, then the NNTP port is assumed to  be
          open  on  the specified descriptor.  (If this flag is used, then
          innd assumes it is running with the proper  permissions  and  it
          will not call chown(2) on any files or directories it creates.)

   -t     Change the timeout period before flushing to timeoutseconds.

   -i     To limit the number of incoming NNTP connections, use the ``-i''
          flag.  A value of zero will suppress this check.  The default is

   -o     To limit the number of files that will be kept open for outgoing
          file feeds, use the ``-o'' flag.  The default is the  number  of
          available descriptors minus some reserved for internal use.

   -l     To  limit  the size of an article, use the ``-l'' flag.  If this
          flag is used, then any article bigger than size  bytes  will  be
          rejected.   The  default  is  no  checking,  which  can  also be
          obtained by using a value of zero.

   -c     Innd rejects articles that are too old.  While this behavior can
          be controlled by the history database, occasionally a site dumps
          a batch of very old news back onto the network.  Use the  ``-c''
          flag  to specify a cutoff.  For example ``-c21'' will reject any
          articles that were posted more than 21 days  ago.   A  value  of
          zero will suppress this check.  The default is 14 days.

   -d -f  Innd normally puts itself into the background, sets its standard
          output and error to log files, and disassociates itself from the
          terminal.   Using the ``-d'' flag instructs the server to not do
          this, while using the ``-f'' flag just leaves the server running
          the foreground.

   -u     The logs are normally buffered; use the ``-u'' flag to have them

   -m     To start  the  server  in  a  paused  or  throttled  state  (see
          ctlinnd(8)) use the ``-m'' flag to set the initial running mode.
          The argument should start with a single letter g, p,  or  t,  to
          emulate   the   ``go,''  ``pause,''  or  ``throttle''  commands,

   -r     If the ``-r'' flag is used, the server will renumber the  active
          file as if a ``renumber'' command were sent.

   -s     If  the  ``-s'' flag is used, then innd will not do any work but
          will instead just check the syntax of the  newsfeeds  file.   It
          will  exit  with  an  error  status if there are any errors; the
          actual errors will be reported in syslog(3).

   -n     The ``-n'' flag specifies whether or not pausing  or  throttling
          the  server should also disable future newsreading processes.  A
          value of ``y'' will make newreaders act as the server,  a  value
          of  ``n''  will  allow  newsreading  even when the server is not
          running.  The default is to allow reading.

   -S     If the ``-S'' flag is used, then  innd  will  run  in  ``slave''
          mode.   When  running  as  a  slave, the server will only accept
          articles from the specified host, which must use the ``xreplic''
          protocol  extension  described  below.   Note that the host must
          either appear in the hosts.nntp file,  or  the  server  must  be
          started with the ``-a'' flag.

   -a     By  default,  if a host if not mentioned in the hosts.nntp file,
          then the connection is handed off to nnrpd.  If the ``-a''  flag
          is used, then any host can connect and transfer articles.

   -L     If  the ``-L'' flag is used, then innd will not create the links
          for cross posted articles.  A feed only type of site  could  use
          this  option to improve performance.  Or it can be combined with
          a channel feed to the crosspost(8) program  to  move  the  delay
          associated  with  creating  the links out of the innd processing

   -C     If the ``-C'' flag is used, then innd will accept and  propagate
          but not actually process cancel or supercedes messages.  This is
          intended for sites concerned about abuse of cancels and wish  to
          use another cancel mechanism with greater authentication.

   -H -T -X
          The  ``-H'',  ``-T'',  and  ``-X''  flags  control the number of
          connects per minute allowed.  This code is meant to protect your
          server  from  newsreader clients that make too many connects per
          minute to your server.  You should probably not  use  it  unless
          you  are  having  a problem.  The table used for these checks is
          fixed at 128 entries and is used as a ring.  The size was chosen
          to  make  calculating  the  index easy and to be pretty sure you
          won't run out of space.  In practice, it is  doubtful  that  you
          will use even half the table at any given moment.

          The  ``-H'' flag limits the number of times a host is allowed to
          connect to the server per ``-X'' seconds.  The default is 2.

          The ``-T'' flag limits the total number of incoming connects  to
          innd per ``-X'' seconds.  The maximum value is 128.  The default
          is 60.

          The ``-X'' sets the number of seconds used  by  the  ``-H''  and
          ``-T''  flags.  A value of zero turns off checking.  The default
          is 0.

   Inndstart is a small front-end program that opens the NNTP  port,  sets
   its userid and groupid to the news maintainer, and then execs innd with
   the ``-p'' flag and a minimal secure, environment.  This  is  a  small,
   easily-understood front-end program that can be used if a site does not
   want to run innd with root privileges.


   Arriving articles that have a Control header or have a  Subject  header
   that  starts  with  the  five  characters  ``cmsg '' are called control
   messages.   Except  for  the  cancel  message,   these   messages   are
   implemented   by   external   programs   in  the  /usr/lib/news/control
   directory.  (Cancel messages update the history database, so they  must
   be  handled  internally;  the  cost of syncing, locking, then unlocking
   would be too  high  given  the  number  of  cancel  messages  that  are

   When a control message arrives, the first word of the text is converted
   to lowercase and used as the name of the program  to  execute;  if  the
   named program does not exist, then a program named default is executed.

   All  control  programs  are invoked with four parameters.  The first is
   the address of the person who posted the message; this  is  taken  from
   the  Sender header.  If that header is empty, then it is taken from the
   From header.  The second parameter is the address to send  replies  to;
   this  is  taken from the Reply-To header.  If that header is empty then
   the poster's address is used.  The third parameter will be a name under
   which  the article is filed, relative to the news spool directory.  The
   fourth parameter is the host that sent the article, as specified on the
   Path line.

   The  distribution  of  control  message is also different from those of
   standard articles.

   Control messages are normally filed in  the  newsgroup  named  control.
   They  can  be filed in subgroups, however, based on the control message
   command.   For  example,  a  newgroup  message   will   be   filed   in
   control.newgroup  if  that  group exists, otherwise it will be filed in

   Sites  may  explicitly  have  the  ``control''   newsgroup   in   their
   subscription  list,  although  it  is usually best to exclude it.  If a
   control message is posted to a group whose  name  ends  with  the  four
   characters ``.ctl'' then the suffix is stripped off and what is left is
   used as the group name.   For  example,  a  cancel  message  posted  to
   ``news.admin.ctl''  will  be  sent  to  all  sites  that  subscribe  to
   ``control'' or ``news.admin.''  Newgroup and rmgroup  messages  receive
   additional special treatment.  If the message is approved and posted to
   the name of the group being created or removed, then the  message  will
   be  sent  to  all sites whose subscription patterns would cause them to
   receive articles posted in that group.


   Innd implements  the  NNTP  commands  defined  in  RFC  977,  with  the
   following differences:

   1.     The   ``list''   maybe   followed  by  an  optional  ``active'',
          ``active.times'',  or  ``newsgroups''  argument.   This   common
          extension is not fully supported; see nnrpd(8).

   2.     The   ``authinfo  user''  and  ``authinfo  pass''  commands  are
          implemented.   These   are   based   on   the   reference   Unix
          implementation; no other documentation is available.

   3.     A  new command, ``mode reader'', is provided.  This command will
          cause the server to  pass  the  connection  on  to  nnrpd.   The
          command  ``mode  query''  is  intended  for  future  use, and is
          currently treated the same way.

   4.     A new command, ``xreplic[,]'',  is
          provided.   This  is  similar to the ``ihave'' command (the same
          reply codes are used) except  for  the  data  that  follows  the
          command  word.   The  data  consists  of  entries separated by a
          single comma.  Each entry consists of a newsgroup name, a slash,
          and  an  article  number.   Once  processed, the article will be
          filed in the newsgroup and  article  numbers  specified  in  the

   5.     A  new  command,  ``xpath  messageid'', is provided.  The server
          responds with a 223  response  and  a  space-separated  list  of
          filenames where the article was filed.

   6.     The  only  other  commands  implemented  are ``head'', ``help'',
          ``ihave'', ``quit'', and ``stat''.


   Innd modifies as few article headers as possible, although it could  be
   better in this area.

   The following headers, if present, are removed:
   Empty  headers  and  headers that consist of nothing but whitespace are
   also dropped.

   The local site's name (as  determined  by  the  ``pathhost''  value  in
   inn.conf(5)) and an exclamation point are prepended to the Path header.

   The  Xref  header  is  removed.   If  the article is cross-posted a new
   header is generated.

   The Lines header will be added if it is missing.

   Innd does not rewrite incorrect headers.   For  example,  it  will  not
   replace an incorrect Lines header, but will reject the article.


   Innd  reports  all  incoming  articles in its log file.  This is a text
   file with a variable number of space-separated fields  in  one  of  the
   following formats:
          mon dd hh:mm:ss.mmm + feed <Message-ID> site...
          mon dd hh:mm:ss.mmm j feed <Message-ID> site...
          mon dd hh:mm:ss.mmm c feed <Message-ID> site...
          mon dd hh:mm:ss.mmm - feed <Message-ID> reason...
   The first three fields are the date and time to millisecond resolution.
   The fifth field is the site that sent the article (based  on  the  Path
   header) and the sixth field is the article's Message-ID; they will be a
   question mark if the information is not available.

   The fourth field indicates whether the article was accepted or not.  If
   it  is a plus sign, then the article was accepted.  If it is the letter
   ``j'' then the article was accepted, but  all  of  newsgroups  have  an
   ``j'' in their active field, so the article was filed into the ``junk''
   newsgroup.  If the fourth field is the  letter  ``c'',  then  a  cancel
   message was accepted before the original article arrived.  In all three
   cases, the article has been accepted and the ``site..'' field  contains
   the space-separated list of sites to which the article is being sent.

   If  the  fourth  field  is a minus sign, then the article was rejected.
   The reasons for rejection include:
          "%s" header too long
          "%s" wants to cancel <%s> by "%s"
          Article exceeds local limit of %s bytes
          Article posted in the future -- "%s"
          Bad "%s" header
          Can't write history
          Duplicate "%s" header
          EOF in headers
          Linecount %s != %s +- %s
          Missing %s header
          No body
          No colon-space in "%s" header
          No space
          Space before colon in "%s" header
          Too old -- "%s"
          Unapproved for "%s"
          Unwanted newsgroup "%s"
          Unwanted distribution "%s"
          Whitespace in "Newsgroups" header -- "%s"
   Where ``%s'', above, is replaced by more specific information.

   Note that if an article is accepted and  none  of  the  newsgroups  are
   valid,  it will be logged with two lines, a ``j'' line and a minus sign

   Innd also makes extensive reports through syslog.  The  first  word  of
   the  log  message  will  be  the name of the site if the entry is site-
   specific (such as a ``connected'' message).  The  first  word  will  be
   ``ME'' if the message relates to the server itself, such as when a read
   error occurs.

   If the second word is the four letters ``cant'' then an error is  being
   reported.   In  this case, the next two words generally name the system
   call or library routine that failed, and  the  object  upon  which  the
   action  was  being  performed.   The rest of the line may contain other

   In other cases, the second word attempts to summarize what  change  has
   been  made, while the rest of the line gives more specific information.
   The word ``internal'' generally indicates an internal logic error.


   Written by Rich $alz <> for  InterNetNews.   This  is
   revision 1.37, dated 1996/12/06.


   active(5),     ctlinnd(8),     crosspost(8),    dbz(3z),    history(5),
   hosts.nntp(5),   inn.conf(5),   newsfeeds(5),    nnrpd(8),    rnews(1),



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.