Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.python
How can I kill CGIHTTPServer ?
eching
2/11/2008 6:18:00 AM
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#ff7d0a...
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
3 Answers
Steve Holden
2/11/2008 3:26:00 PM
0
eching wrote:
> 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#ff7d0a...
>
> 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
It really might be a good idea to patch serve_forever in the library to
allow handlers to raise a specific StopServing exception. At the moment
IIRC the position is that there's a generic trap of pretty much all
exceptions, which isn't too helpful. I suppose a counter-argument might
be that "forever" has a defined meaning, and the method is correctly
named, but that's mere semantics.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC
http://www.hold...
Gabriel Genellina
2/11/2008 4:25:00 PM
0
En Mon, 11 Feb 2008 04:18:04 -0200, eching <bingopajama@hotmail.com>
escribi�:
> 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:
See this thread from last year; it's about XMLRPC but the idea is the same.
http://groups.google.com/group/comp.lang.python/browse_thread/thread/c48f06...
--
Gabriel Genellina
eching
2/12/2008 4:20:00 AM
0
On Feb 11, 10:24 am, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
wrote:
> En Mon, 11 Feb 2008 04:18:04 -0200, eching <bingopaj...@hotmail.com>
> escribi?:
>
> > 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:
>
> See this thread from last year; it's about XMLRPC but the idea is the same..
http://groups.google.com/group/comp.lang.python/browse_thre...
...
>
> --
> Gabriel Genellina
That looks about like what I need. Thanks for the link!
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
How can I kill CGIHTTPServer ?
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password