On Fri, 2009-01-23 at 16:43 -0600, Pat Lathem wrote:
> What causes exim to spawn so many processes? These options are set:
If you have many thousands of messages in a queue, Exim will spawn a
process for every delivery it tries to do. Your list breaks down as
follows:
PID 16237 is a daemon spawning a queue runner every 10 minutes. It has
75 child processes which appear to be handling incoming connections, or
at least are listening on a TCP socket.
PID 16485 is a daemon spawning a queue runner every 3 minutes. It has
241 direct child processes, many of which are zombies. Some seem to be
handling incoming connections, but I may be identifying them
incorrectly. Those which are not are trying to run the queue.
PID 16215 is a listening daemon bound to 10.0.5.121:463 and
10.0.5.121:2501, listening for TLS-on-connect (otherwise known as
"smtps" or "ssmtp", alebit incorrectly). It has one direct child process
handling the incoming connections, but no connected clients.
*Everything else* is an Exim process trying to deliver a message out of
the queue, but it seems that they were spawned by a long-dead parent
process and are therefore now associated with PPID 1 - "init", or the
master system process.
If I were you, as rude as it may be, I'd do "killall -9 exim" and then
restart it gracefully. That process list is a bit of a mess.
You could do with reading the following section of the docs:
http://www.exim.org/exim-html-current/doc/html/spec_html/ch14.html#SECID104
Which explains how to restrict resource usage. Also, if you use "ps
-afx" (assuming a Linux system) you'll get a process tree, which can
help you visualise what's going on.
Graeme