[Mailman-Users] Is there a way to run the daemons (qrunner) on demand only when a message arrives in the queue?

Steven Mading madings at gmail.com
Mon Dec 16 01:12:11 CET 2013


My mailing list is very low traffic.  It only sees activity of about 6-7
messages a month, and even that is at peak activity.  It can sometimes go a
whole month with no messages.

The standard setup for Mailman on a Redhat system seems to be to run
qrunner at bootup time via a /etc/init.d script and then have the daemon
processes sit there existing in the process list until a mail message
arrives and then they wake up and have work to do.

This setup seems inappropriate for a low traffic mailing list.  For one
thing the processes have a significant virtual memory footprint and my
hosting service puts a max cap on virtual memory (which I know is stupid
because it has no real impact on the host OS but it's what they do).  For
another thing because the list can be idle a long time, if something made
the qrunner processes crash, then I don't notice and when someone does
finally use the mailing list the message doesn't go through until they
complain to me and I go restart mailman.

That makes me think that for a very low traffic mailing list like mine, it
would be more appropriate if I could get the Mailman daemons to operate
similar to how an internet daemon operates when it is triggered by inetd
instead of being a true daemon.  (Most of the time it isn't even running at
all and has zero footprint.  Instead a much smaller much simpler daemon
runs to watch for the type of activity that the bigger daemon should
respond to, and when it happens it runs the bigger program to respond to
just this one instance of activity, after which the bigger program will die
and go away leaving just the little program to continue looking for further
activity).  This pattern adds the cost of extra lag to the response, but
this buys you a lower footprint the rest of the time when it's idle, and it
also buys you the ability to not have to constantly monitor to make sure
that a process that hasn't had anything to do for a long time is still
running.

It would be wonderful if I could do a thing like that with qrunner.

Is there an option that I can turn on somewhere that does this and I just
can't find it in the documentation?

If not I'll cobble together a small script that will look at Mailman's
pending queue directory and when it starts having files in it, the script
will run "/etc/init.d/mailman start", and when it has no files in it, it
will run "/etc/init.d/mailman stop".

It's a crude solution so I'd rather not use it if there's something more
elegant built in to Mailman that I didn't notice.


-- 
Steven L. Mading <madings at gmail.com>


More information about the Mailman-Users mailing list