mod-active - Batch processing of newsgroups creation and removal commands
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-active.
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 protected]> for InterNetNews. Converted to
POD by Julien Elie.
active(5),
active.times(5),
actsync(8),
ctlinnd(8),
docheckgroups(8),
innd(8).