[Web-SIG] Daemon server management
smulloni at smullyan.org
Thu Jun 9 20:41:21 CEST 2005
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
Url : http://mail.python.org/pipermail/web-sig/attachments/20050609/a9012cbc/attachment.pgp
More information about the Web-SIG