mod-active - batch processing of ctlinnd new
group/rmgroup/changegroup
SYNOPSIS
mod-active [ ctlinnd_command_file ]
DESCRIPTION
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 con
tains 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 "check
groups-update".
BUGS
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 real
istic ways I can think of for this to happen are either by
an administrator concurrently doing a manual ctlinnd com
mand, or by innd receiving a control message, then mod-
active pausing the server, then the control message han
dler script that innd forked running its own ctlinnd com
mand while mod-active is working. I've been using mod-
active regularly for several years, though, and never had
either problem.
HISTORY
Written by David C Lawrence <tale@isc.org>.
SEE ALSO
active(5), actsync(8), ctlinnd(8), innd(8).
Man(1) output converted with
man2html