On Thu, Jun 09, 2005 at 01:26:17PM -0500, Ian Bicking wrote: > Does anyone have opinions on how to start and stop daemon servers? I've > added a --daemon option to paster serve, but I'd like to implement stop, > restart, and reload as well. Whenever I encounter servers that clobber > pid files, or where the only way you can tell you've started a server > twice is that you get an error message about not being able to bind to > the port, it annoys me. But I'm not sure how to best implement a better > system. Especially cross-platform -- though an entirely separate > process for Windows might make sense (as a windows service or something). > > Opinions? Or examples of other servers (preferably Python-based) that > do this well?
Clobbering pid files is a no-no; but getting an error about a port being already in use doesn't seem terrible to me. What would you rather it say when two different server installations on the same system try to open the same port? Should the server configuration really need to know that it is or is not the "same instance" of the server as the one owning the port? A program being stupid in the right way is a feature. In fact, a user getting annoyed by an error message in the right way is a feature, too, especially when the user has made a mistake! I'd advocate the standard UNIX behavior for UNIX machines; pid file, conventional signal handling (in particular, HUP reloads). For Windows, the standard Windows behavior, whatever that might be; a cross-platform solution would be neither fish nor fowl. This is not just a matter of taste; conforming to the platform's expectations in this area is the gracious thing to do, since packagers and system administrators do not relish constantly having to write special wrappers for non-standard daemons. My two cents, anyway. Cheers, j -- Jacob Smullyan
pgpTl3U9q9E76.pgp
Description: PGP signature
_______________________________________________ Web-SIG mailing list [email protected] Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
