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.