Provided by: inn2_2.4.2-3ubuntu1_i386
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 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".
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 either problem.
Written by David C Lawrence <email@example.com>.
active(5), active.times(5), actsync(8), ctlinnd(8), innd(8).