mod-active - Batch processing of newsgroups creation and removal
mod-active [ctlinnd-command-file ...]
mod-active is a Perl script that updates the active file based on its
input lines of ctlinnd "newgroup", "rmgroup" and "changegroup"
commands. It pauses the server briefly while the existing active file
is read and rewritten, which not only keeps innd from updating the
active file but also locks against other instances of mod-active.
The script must be run as the news user.
The input to mod-active can come either from one or more ctlinnd-
command-file files named on the command line, or from the standard
input. Typically its input is the output from the docheckgroups or
actsync commands. Every line which contains the string "ctlinnd
newgroup", "ctlinnd rmgroup", or "ctlinnd changegroup", optionally
preceded by whitespace and/or the path to ctlinnd, is noted for the
update. Redundant commands, such as a newgroup directive for a group
that already exists, are silently ignored. All other lines in the
input are also silently ignored. After the new active file has been
generated, the existing one is renamed to active.old and the new one is
moved into place. The script then displays the differences between the
two files. Any groups that were added to the active file are also
added to the active.times file with the string "checkgroups-update".
Please note that no syntax checking is performed on group names by mod-
Though innd is paused while mod-active works, it is not inconceivable
that there could be a conflict if something else tries to update the
active file during the relatively short time that mod-active is
working. The two most realistic ways for this to happen are either by
an administrator concurrently doing a manual ctlinnd command, or by
innd receiving a control message, then mod-active pausing the server,
then the control message handler script that innd forked running its
own ctlinnd command while mod-active is working. Note that such
scenarios are very unlikely to happen.
Written by David C Lawrence <email@example.com> for InterNetNews. Converted
to POD by Julien Elie.
active(5), active.times(5), actsync(8), ctlinnd(8), docheckgroups(8),