jdennis at redhat.com
Wed Jan 19 17:28:47 CET 2005
Just so you're not left in the woods, here is a brief summary of what
First of all its a daemon, which in UNIX speak means its a system
service that always runs in the background, is started by the system,
and does not interact with a user with any IO.
It's job is to start a number of children processes, these are the
qrunners, each has a specific queue it monitors. Mailmanctl watches for
the "health" of its children, if one of its child qrunner processes die
it will restart it (up to a certain restart limit, otherwise when there
is a serious problem it would flood the system with processes that start
and just immediately die). Communication with the child processes occurs
with UNIX signals. Mailmanctl also manages locks to assure exactly one
instance of mailman is running and can identify the running master
process. It does some other housekeeping work as well, as well as
verifying permissions, which are based on UNIX groups.
Another part of mailman 2.1.5 that is very UNIX specific is the whole
security and permission framework. If you look in the src directory
you'll find C code which is compile into several "wrapper" programs.
This is what the web server and the MTA exececute. They validate the
calling process has permission to execute the requested python code.
Also you'll discover that the web server (cgi) and MTA alias piping
mechanism is probably very UNIX specific as well.
Bottom line, the guts of mailman are platform neutral but it must hook
into a larger system to actually perform its work and that system is
very much UNIX. To get mailman to run with another OS you'll have to at
a minimum address each of the issues I outlined above.
John Dennis <jdennis at redhat.com>
More information about the Mailman-Users