On Fri, 22 May 2009, Charlie Brady wrote:

> On Fri, 22 May 2009, J wrote:
>
> > However, I'm back to seeing the connection processes being left behind,
> > despite an explicit quit from the remote host.
> >
> > I also see that 'svc -d' leaves all the qpsmtpd-prefork processes in the
> > rocess table. Do I need to write something to down the service as well as
> > remove the processes?
>
> No, the parent process should handle the TERM signal, should propagate it to
> any children, wait for them to die, and should then exit. If it's not doing
> that, it needs to be fixed.

        My current 'run' file (posted in previous message(s)):

=====================================
#!/bin/sh
exec 2>&1 \
sh -c '
exec \
        /usr/local/bin/softlimit -m 1000000000 \
        /usr/bin/perl -T ./qpsmtpd-prefork \
        --listen-address 0.0.0.0:25 \
        --listen-address 0.0.0.0:587 \
        --children 30 \
        --idle-children 5 \
        --max-from-ip 2 \
        --user smtpd
'
=====================================

I had to increase the softlimit due to an 'Out of memory!' error, when I
started using my own plugins.

Although everything seems to work now (still a lot of specific testing to
do for highly customized plugins), both issues are still present. I now
have a cron job to clear out old connections, and my 'down' script kills
off all prefork processes. Definitely a kludge on both counts.

Except for the forkserver executable and parameters, this is the same
'run' file I used for forkserver, which did work properly. If the problem
isn't here, where might it be? If it is here, what is it and what needs to
change?

Thanks.

J.

Reply via email to