Hi everyone, FYI -- feedback welcome. I haven't had a chance to look.
- ask Begin forwarded message: > From: GitHub <nore...@github.com> > Date: March 24, 2010 5:15:00 AM PDT > To: a...@develooper.com > Subject: [GitHub] typester sent you a pull request from typester/qpsmtpd > > > > typester wants you to pull from typester/qpsmtpd at topic > > Body: Hi, > > I wrote Server::Starter support for qpsmtpd-async as > qpsmtpd-async-server-starter. > > Server::Starter is a superdaemon for hot-deploying server programs. > Please see the document for detail: > http://search.cpan.org/~kazuho/Server-Starter-0.06/lib/Server/Starter.pm > > Usage: > > start_server --port=2525 --port=127.0.0.1:20025 -- > ./qpsmtpd-async-server-starter > > This will start qpsmtpd with normal smtp port 2525 and config port 20025 > under Server::Starter. > > And you can graceful restart with below command: > > kill -HUP [Server::Starter pid] > > Then Server::Starter re-exec new qpsmtpd and if it successfully started, send > TERM to old qpsmtpd. > > I also added graceful shutdown feature to `$SIG{HUP}` handler. > It will wait all client connection until $TIMEOUT (default: 60 seconds) > So now qpsmtpd chould be restarted without downtime! > > Also Server::Starter restarts qpsmtpd immediately if qpsmtpd exits > unexpectedly, so some fork stuff in qpsmtpd-async is no longer required. (so > I removed it) > > I hope you will applied this. > > Thanks, > > > View repository: http://github.com/typester/qpsmtpd/tree/topic