How can I kill CGIHTTPServer ?

eching bingopajama at hotmail.com
Mon Feb 11 01:18:04 EST 2008


I'm running CGIHTTPServer with the serve_forever method and I cannot
get the darn thing to stop unless I kill the command prompt its
running in.  I searched for similar posts here and found this:

http://groups.google.com/group/comp.lang.python/browse_thread/thread/6879d74ad7679349/ff7d0aa2be964767?lnk=gst&q=HTTPServer+kill#ff7d0aa2be964767

But there doesn't seem to be a definitive answer.  I tried one of the
last proposed solutions:

    class Server(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
        pause = 0.25
        allow_reuse_address = True

        def __init__(self, server_address, RequestHandlerClass):
            SocketServer.TCPServer.__init__(self, server_address,
                                            RequestHandlerClass)
            self.socket.settimeout(self.pause)
            self.serving = 1
            ...

        def serve_forever(self):
            while self.serving:
                self.handle_request()

And that worked, but the last post in the thread suggested '...this
would cause timeouts in the middle of handling request whenever a
client is slow'

Can anyone comment on this solution or have other possible solutions?
Eventually I probably will want this to run as a windows service to
serve up some internal apps, so it would be great if I could the
server to shutdown gracefully.

Thanks in advance,
Eric



More information about the Python-list mailing list