mod-active - batch processing of ctlinnd newgroup/rmgroup/changegroup
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 input to mod-active can come either from one or more 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
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
Any groups that were added to the active file are also added to the active.times file with
the string "checkgroups-update".
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 I can think of 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. I've been using mod-active regularly for several years, though, and never had
Written by David C Lawrence <email@example.com>.
active(5), actsync(8), ctlinnd(8), innd(8).