Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CTLINND(8)		   InterNetNews Documentation		      CTLINND(8)

NAME
     ctlinnd - Control the main InterNetNews daemon

SYNOPSIS
     ctlinnd [-hs] [-t timeout] [command [argument ...]]

DESCRIPTION
     ctlinnd  sends a message to the control channel of innd(8), the main Inter-
     NetNews daemon.

     In the normal mode of behavior, the message is sent to  the  server,  which
     then  performs the requested action and sends back a reply with a text mes-
     sage and an exit code for ctlinnd.  If the  server  successfully  performed
     the  command, ctlinnd will print the reply on standard output and exit with
     a status of zero.	If the server could not perform the command, it will di-
     rect ctlinnd to exit with a status of one.  By default, ctlinnd  will  wait
     forever for a response from innd; this can be changed with the -t flag.

     The  "shutdown",  "xabort",  and  "xexec" commands do not generate a reply,
     since they cause innd to exit.  After these commands, ctlinnd  will  always
     exit silently with a status of zero.

OPTIONS
     -h  Prints  a  command  summary.	If  a command is given along with the -h
	 flag, only the usage for that command will be given.

     -s  If the command was successful, don't print the output from innd.

     -t timeout
	 Specifies how long to wait for the reply from the server, for	commands
	 other than "shutdown", "xabort", and "xexec".	timeout is the number of
	 seconds  to  wait.   A  value of zero says to wait forever, and a value
	 less than zero says not to wait at all but just exit  immediately  with
	 status  zero.	 When  waiting for a reply, ctlinnd will check every two
	 minutes to be sure the server is still running, to make it less  likely
	 that ctlinnd will just hang.

	 The default is zero, indicating that ctlinnd should wait forever.

COMMANDS
     Here is the complete list of supported commands.  Note that nearly all com-
     mands  have  a  fixed  number of arguments.  If a parameter may be an empty
     string, it is still necessary to pass the empty string to ctlinnd as an ar-
     gument (specified in the shell as two adjacent quotes, like '').

     addhist message-id arrival expires posted token
	 Add an entry to the history database for message-id.  The angle  brack-
	 ets  around  message-id  are optional.  It should normally be protected
	 from the shell with single quotes.

	 arrival, expires, and posted should be  the  number  of  seconds  since
	 epoch	and  indicate when the article arrived, when it expires (via the
	 Expires header field), and when it was posted (given in the Date header
	 field), respectively.	expires should be 0 if the article doesn't  have
	 an  Expires header field.  token is the storage API token for the arti-
	 cle, and may be empty.

	 This command can only be used while the server is running, and will  be
	 rejected if the server is paused or throttled.

     allow reason
	 Allow	remote	connections, reversing a prior "reject" command.  reason
	 must be the same text given to  the  "reject"	command,  or  the  empty
	 string (which matches any reason).

     begin site
	 Begin	feeding site.  The server will rescan the newsfeeds file to find
	 the specified site and set up a news feed for it.  If the site  already
	 existed,  a  "drop"  for that site is done first.  This command is for-
	 warded; see "NOTES" below.

     cancel message-id
	 Remove the article with the specified message-ID from the local system.
	 This does not generate a cancel control message; it  only  affects  the
	 local	system.   The angle brackets around message-ID are optional.  It
	 should normally be protected from the shell with single quotes (and not
	 double quotes).  For instance:

	     ctlinnd cancel 'test@foo.bar'

	 Note that the history database is updated with the specified Message-ID
	 so if an article with the same Message-ID is  afterwards  received,  it
	 will be rejected; it is useful for rejecting spam before it arrives.

	 If  the server is throttled manually, this command causes it to briefly
	 open the history database.  If the server is paused  or  throttled  for
	 any other reason, this command is rejected.

     changegroup group status
	 The  newsgroup group is changed so that its status (the fourth field in
	 the active file) becomes status.  This may be used to make an	existing
	 group moderated or unmoderated, for example.

	 This  command,  unlike  "newgroup" or "rmgroup", can only be used while
	 the server is running, and will be rejected if the server is paused  or
	 throttled.

     checkfile
	 Check the syntax of the newsfeeds file and display a message if any er-
	 rors are found.  The details of the errors are reported to syslog.

     drop site
	 Flush	and drop site from the server's list of active feeds.  This com-
	 mand is forwarded; see "NOTES" below.

     feedinfo site
	 Print detailed information about the state of	the  feed  to  site,  or
	 brief status about all feeds if site is the empty string.

     flush site
	 Flush	the  buffer for the specified site.  The action taken depends on
	 the type of feed the site receives; see newsfeeds(5) for more	informa-
	 tion.	This is useful when the site is being fed by a file and batching
	 is  about to start, or to cleanly shut down and respawn a channel feed.
	 If site is an empty string, all sites are flushed and the  active  file
	 and  history  database  are also flushed to disk.  This command is for-
	 warded; see "NOTES" below.

	 Flushing the innfeed channel feed is the recommended method of restart-
	 ing innfeed to pick up new configuration.  innd will spawn a  new  inn-
	 feed process while the old process shuts down cleanly.

     flushlogs
	 Close the news and error log files and rename them to add ".old" to the
	 file  name,  then  open fresh news and error logs.  The active file and
	 history database are also flushed to disk.  Exploder and process  chan-
	 nels  are  reopened so that they properly take into account the new log
	 files.

     go reason
	 Re-open the history database and start accepting  articles  again,  re-
	 versing  a  previous "pause" or "throttle" command.  reason must be ei-
	 ther the empty string or match the text that was given to  the  earlier
	 "pause" or "throttle" command.

	 If  a "reject" command is in effect, this will also reverse it by doing
	 the equivalent of an "allow" command  if  the	reason	matches  reason.
	 Likewise,  if	a  "reserve" command had been given, this will clear the
	 reservation if reason matches the text that was given to "reserve".

	 The history database is automatically closed on "throttle"  or  "pause"
	 and  reopened	on  "go", so the history database can be replaced during
	 the pause or throttle without requiring an explicit  "reload"	command.
	 If  any  other  configuration files or the active file were modified, a
	 "reload" command should be given to force the server to  re-read  those
	 files.

	 If  the server throttled itself because it accumulated too many I/O er-
	 rors, this command will reset the error count.

	 If innd was not started with the -n y flag, this command also does  the
	 equivalent  of a "readers" command with "yes" as the flag and reason as
	 the text.

     hangup channel
	 Close the socket for the specified incoming channel.  This may be  use-
	 ful  when an incoming connection appears to be hung (although innd will
	 close idle connections automatically after a timeout, as set with peer-
	 timeout in inn.conf).

     help [command]
	 Print a command summary for all commands, or just  command  if  one  is
	 specified.  This is equivalent to the -h option.

     kill signal site
	 Signal  signal  is  sent  to the process underlying the specified site,
	 which must be a channel or exploder feed.  signal may be a numeric sig-
	 nal number or one of "hup", "int", or "term"; case is not significant.

     logmode
	 Cause the server to log its current operating mode to syslog.

     lowmark file
	 Reset the low water marks in the active file based on the  contents  of
	 file.	Each line in file must be of the form:

	     group low-value

	 For example:

	     comp.lang.c++ 243

	 This command is mostly used by news.daily to update the active file af-
	 ter nightly expiration.

     modePrint	the server's operating mode as a multi-line summary of the para-
	 meters and the operating state.  The parameters in  the  output  corre-
	 spond	to  command-line  flags to innd and give the current settings of
	 those parameters that can be overridden by command-line flags.

     name channel
	 Print the name and relevant information for the given incoming or  out-
	 going	channel  number,  or  for  all	channels  if channel is an empty
	 string.  The response is formatted as:

	     <name>:<number>:<type>:<idle>:<status>

	 where <name> is the name of the channel, <number> is its number (gener-
	 ally the same as the file descriptor assigned to  it),  <idle>  is  the
	 idle  time for an NNTP channel or the process ID for a process channel,
	 and <status> is the status for NNTP channels.

	 The <type> field is one of the following values:

	     control	 Control channel for ctlinnd
	     file	 An outgoing file feed
	     localconn	 Local channel used by nnrpd and rnews for posting
	     nntp	 NNTP channel for remote connections
	     proc	 The process for a process feed
	     remconn	 The channel that accepts new remote connections

	 Channel status indicates whether the channel is paused or not.  Nothing
	 is shown unless the channel is paused, in which case "paused" is shown.
	 A channel will be paused automatically if the number of remote  connec-
	 tions	for  that label in incoming.conf is greater than max-connections
	 within hold-time seconds.

     newgroup group [status [creator]]
	 Create the specified newsgroup.  The status  parameter  is  the  fourth
	 field	of  the  active file entry, as described in active(5).	If it is
	 not an equal sign, only the first character is used.  creator should be
	 the identity of the person creating the group.  If  the  newsgroup  al-
	 ready exists, this is equivalent to the "changegroup" command.

	 creator,  encoded in UTF-8 if given, may be omitted; if so, it will de-
	 fault to the newsmaster  (as  specified  at  configure  time,	normally
	 "usenet").   status  may also be omitted; if so, it will default to "y"
	 (a normal, unmoderated group).  The combination  of  defaults	make  it
	 possible to use the text of the Control header field directly (although
	 don't	do  this  without  checking the syntactic validity of the header
	 field first).

	 This command can only be done while the server is running or  throttled
	 manually.   It  will  update  its internal state when a "go" command is
	 sent.	This command updates the active.times file as well.   This  com-
	 mand is forwarded; see "NOTES" below.

     param letter value
	 Change the specified server parameter.  letter is the innd command-line
	 option to set and value is the new value.  For example:

	     ctlinnd param i 5

	 would	direct	the  server to allow only five incoming connections.  To
	 enable or disable the action of the -n flag, use "n" for the letter and
	 "y" or "n", respectively, for the value.

	 The supported values for letter are "a", "c", "H", "i", "l", "n",  "o",
	 "T", "t", and "X".

     pause reason
	 Pause	the server so that no incoming articles are accepted.  No exist-
	 ing connections are closed, but the history database is  closed.   This
	 should be used for short-term locks, such as when replacing the history
	 database.   If the server was not started with the -n y flag, this com-
	 mand also does the equivalent of a "readers" command with "no"  as  the
	 flag and reason as the text, encoded in UTF-8.

     perl flag
	 Enable  or  disable  Perl  filtering on every article received by innd.
	 This command is only available if INN was  built  with  Perl  filtering
	 support.   If	flag starts with "y", filtering is enabled; if it starts
	 with "n", filtering is disabled.

	 When filtering is disabled, if the filter_innd.pl Perl filter defined a
	 function "filter_end", it will be called prior to the	deactivation  of
	 the filter.

	 Note  that  enabling or disabling Perl filtering on every post received
	 by nnrpd is parameterized with the perlfilter access parameter in read-
	 ers.conf.

     python flag
	 Enable or disable Python filtering on every article received  by  innd.
	 This  command	is only available if INN was built with Python filtering
	 support.  If flag starts with "y", filtering is enabled; if  it  starts
	 with "n", filtering is disabled.

     readers flag text
	 Allow	or  disallow  readers.	If flag starts with the letter "n", then
	 reading is disallowed by causing the server to pass text as  the  value
	 of  the  -r flag to nnrpd.  If flag starts with the letter "y" and text
	 is either an empty string or the same string, encoded	in  UTF-8,  that
	 was used when reading was disabled, reading will be re-enabled.

	 The  advantage  of  this parameter over noreader in inn.conf is that it
	 permits specifying a custom message.

	 This command has no effect if nnrpd is being run separately rather than
	 spawned by innd.

     reject reason
	 Remote connections (those that would not be handed off  to  nnrpd)  are
	 rejected  with  reason given as the explanation, encoded in UTF-8.  Ex-
	 isting connections are not closed.

     reload what reason
	 Update the in-memory copy of server configuration files.  what  identi-
	 fies  what  should be reloaded, and reason is reported to syslog in the
	 message noting the reload.

	 There is no way to reload inn.conf, storage.conf, or  other  configura-
	 tion files for the storage or overview backends.  To pick up changes to
	 those files, use "ctlinnd xexec innd" to restart innd.

	 If  what is the empty string or the word "all", everything is reloaded.
	 If it is the word "history", the history database  is	closed	and  re-
	 opened.   If  it is the word "incoming.conf", the corresponding file is
	 reloaded.  If it is the word "active" or "newsfeeds", both  the  active
	 and  newsfeeds  files	are reloaded, which will also cause all outgoing
	 feeds to be flushed and restarted.

	 If what is the word "filter.perl", the filter_innd.pl file is reloaded.
	 (This file is however not available for reloading unless INN  was  com-
	 piled with Perl filtering support.)  If the Perl filter defined a func-
	 tion "filter_before_reload", it will be called prior to re-reading fil-
	 ter_innd.pl.  If the Perl function "filter_after_reload" is defined, it
	 will  be  called after filter_innd.pl has been reloaded.  Reloading the
	 Perl filter does not enable filtering if  it  has  been  disabled;  use
	 "perl y" to do this instead.  startup_innd.pl cannot be reloaded.

	 If  what  is  the  word "filter.python", the filter_innd.py file is re-
	 loaded.  (This file is however not available for reloading  unless  INN
	 was  compiled with Python filtering support.)	If a Python method named
	 "filter_before_reload" exists, it will be called  prior  to  re-reading
	 filter_innd.py.  If a Python method named "__init__" exists, it will be
	 called  after	filter_innd.py	has been reloaded.  Reloading the Python
	 filter does not enable filtering if it has been disabled;  use  "python
	 y" to do this.

     renumber group
	 Update  the low water and high water marks for group in the active file
	 based on the information in the overview database.  Regardless  of  the
	 contents  of the overview database, the high water mark will not be de-
	 creased.  (Decreasing it may cause duplicate article numbers to be  as-
	 signed  after	a crash, which can cause serious problems with the trad-
	 spool storage method.)  If group is the empty	string,  all  newsgroups
	 are  renumbered.  Renumber only works if overview data has been created
	 (if enableoverview is set to true in inn.conf).

     renumberlow file
	 Identical to the "lowmark" command.

     reserve reason
	 Require the next "pause" or "throttle" command to  use  reason  as  its
	 reason,  encoded  in  UTF-8.	This reservation is cleared by giving an
	 empty string for the reason.  This is used by programs like  expire  to
	 coordinate  pauses  and  throttles of the server and avoid trampling on
	 other instances of themselves.

     rmgroup group
	 Remove the specified newsgroup.  The group is removed from  the  active
	 file  and its overview information is purged, making it immediately un-
	 available to readers.	Unlike the "newgroup" command, this command does
	 not update the active.times file.

	 This command can only be done while the server is running or  throttled
	 manually.  This command is forwarded; see "NOTES" below.

     send feed text
	 The specified text is sent as a control line to the exploder feed.

     shutdown reason
	 The  server is shut down, with the specified reason recorded in the log
	 and sent to all open connections.  It is a good idea to send a  "throt-
	 tle" command first so that feeds can be shut down more gracefully.

	 If  Perl  or Python filtering is compiled in and enabled, certain func-
	 tions are called at "throttle" or "shutdown" (to save filter  state  to
	 disk,	for example).  Consult the embedded filter documentation for de-
	 tails.

     stathist (off | filename)
	 Enable or disable generation of history performance statistics.  If the
	 parameter is "off", no statistics are gathered.  Otherwise,  statistics
	 are  written to the specified file.  A parser for this file is provided
	 in  the  contrib  tree  of  the  INN  distribution.   See  stathist  in
	 inn.conf(5) for information on how to set the default.

     status (off | interval)
	 Adjust the frequency with which innd reports status information to sys-
	 log.	Status reporting is turned off if "off" or 0 is given as the ar-
	 gument.  Otherwise, status will be  reported  every  interval	seconds.
	 See status in inn.conf(5) for information on how to set the default.

     throttle reason
	 Close	all existing incoming connections and outgoing feeds, and reject
	 new connections.  Close the history database.	This should be used  for
	 long-term  locks  or  for running a large number of "newgroup" and "rm-
	 group" commands without restarting all outgoing feeds between each one.
	 (Note that changing the status of existing newsgroups when  the  server
	 is throttled cannot be done.)

	 If  the  server  was  not started with the -n y flag, then this command
	 also does the equivalent of a "readers" command with "no" as  the  flag
	 and reason as the text, encoded in UTF-8.

     timer (off | interval)
	 Adjust the frequency with which innd reports performance information to
	 syslog.  Performance monitoring is turned off if "off" or 0 is given as
	 the  argument.   Otherwise,  statistics will be reported every interval
	 seconds to syslog.  See timer in inn.conf(5) for information on how  to
	 set the default.

     trace item flag
	 Turn  tracing on or off for the specified item.  flag should start with
	 the letter "y" or "n" to turn tracing on or off, respectively.  If item
	 starts with a number, tracing is set up for the specified innd channel,
	 which must be an incoming NNTP feed.  If it starts with the letter "i",
	 general innd tracing is turned on or off.  If it starts with the letter
	 "n", future nnrpd processes spawned by  "innd"  will  or  will  not  be
	 passed  the  -t  flag,  as appropriate.  This will not affect any nnrpd
	 processes already running, or nnrpd processes	started  by  some  means
	 other than innd.

     xabort reason
	 Log  the  specified  reason and then abort.  On most systems, this will
	 cause innd to dump a core file.  This is only useful for debugging.

     xexec path
	 Shut down the server, but then rather than exiting, exec innd with  all
	 of  its original arguments except for -r.  path may be either "innd" or
	 an empty string, both of which are equivalent.  Any other value  is  an
	 error.

	 This  is the easiest way to start a new copy of innd after upgrading or
	 reload configuration files that can't be reloaded via the "reload" com-
	 mand.

NOTES
     In addition to being acted on by the server, certain commands can	be  for-
     warded  to an appropriate child process.  If the site receiving the command
     is an exploder (such as buffchan) or a funnel that feeds into an  exploder,
     the command can be forwarded.  In this case, the server will send a command
     line  to  the  exploder  that consists of the ctlinnd command name.  If the
     site funnels into an exploder that has an asterisk ("*") in  its  "W"  flag
     (see  newsfeeds(5)  for  more information on feed specifications), the site
     name will be appended to the command; otherwise, no argument is appended.

BUGS
     ctlinnd uses Unix domain sockets on most systems to communicate  with  innd
     and is therefore limited by whatever maximum packet size the operating sys-
     tem  imposes  on  Unix domain datagrams.  This may mean that server replies
     are limited to 4 KB on some systems.

HISTORY
     Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.   Rewritten  in
     POD by Russ Allbery <eagle@eyrie.org>.

SEE ALSO
     active(5),   active.times(5),   buffchan(8),   incoming.conf(5),	innd(8),
     inn.conf(5), libinn_inndcomm(3), newsfeeds(5), nnrpd(8).

INN 2.8.0			   2024-01-21			      CTLINND(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ctlinnd&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help