* On Thu, Jul 11, 2002 at 03:25:33PM BST, Philip Hazel <ph10@???> wrote:
> On Thu, 11 Jul 2002, Simon Williams wrote:
> > kill $(ps auxwww | grep exim | grep -v grep | grep -v -- -bd | \
> > awk '{print $2}')
> >
> > That should work under Linux & FreeBSD. I believe it should work
> > under Solaris if you replace 'pa auxwww' with 'ps -ao user,args',
> > but I'm not near a Solaris machine at the moment.
>
> That would (as I read it) kill all Exim processes that were neither -bd
> daemons, nor spawned from -bd daemons. That isn't what you want. You'd
> kill off reception processes spawned by MUAs.
Having had another look, it seems you're right.
> What you could do is run exiwhat to find the process you want.
I've spotted the following states using exiwhat so far:
The listening daemon:
7639 daemon: -q5m, listening for SMTP
Either a queue-runner or a sub-process of a queue-runner?:
27981 delivering 17Sf0y-0007HI-00
Spawned to handle an incoming connection:
30852 handling incoming connection from machine [x.x.x.x]
A queue-runner or sub-process of a queue-runner that needed to spawn
a sub-process for the delivery:
8118 delivering 17SfIg-00026v-00: waiting for a remote delivery
subprocess to finish
8119 delivering 17SfIg-00026v-00 to machine [x.x.x.x] (email-addr)
I have a feeling I still haven't found the one called by the MUA,
despite having tried to send a 35MB file (bigger when UUEncoded)
locally and running 'while (true); do /usr/exim/bin/exiwhat; done'.
grepping for set_process_info in the Exim source (4.05), it seems
that 'accepting a local non-SMTP message from <%s>' is used for
accepting mails from MUAs. Is this right?
In that case, would this be better for killing queue-runners?:
kill $(/path/to/exiwhat | grep -v daemon | grep -v handling | \
grep -v accepting | awk '{print $1}')
--
Simon Williams <simon@???> **** PGP: 099977D0
"We demand rigidly defined areas of doubt and uncertainty."
- Douglas Adams