Slightly better error handling in prefork and preforkunix

This commit is contained in:
Thomas Nagy 2015-02-14 14:04:57 +01:00
parent d17bb06e36
commit 5716e35fdd
No known key found for this signature in database
GPG Key ID: 67A565EDFDF90E64
2 changed files with 11 additions and 5 deletions

View File

@ -141,7 +141,7 @@ class req(SocketServer.StreamRequestHandler):
else:
ret = subprocess.Popen(cmd, **kw).wait()
except KeyboardInterrupt:
return
raise
except Exception as e:
ret = -1
exc = str(e) + traceback.format_exc()
@ -161,7 +161,10 @@ def create_server(conn, cls):
server = SocketServer.TCPServer(conn, req)
#server.timeout = 6000 # seconds
server.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
server.serve_forever(poll_interval=0.001)
try:
server.serve_forever(poll_interval=0.001)
except KeyboardInterrupt:
pass
if __name__ == '__main__':
if len(sys.argv) > 1:

View File

@ -104,7 +104,7 @@ if 1:
else:
ret = subprocess.Popen(cmd, **kw).wait()
except KeyboardInterrupt:
return
raise
except Exception as e:
ret = -1
exc = str(e) + traceback.format_exc()
@ -140,8 +140,11 @@ if 1:
if pid == 0:
parent_socket.close()
# write to child_socket only
while 1:
process_command(child_socket)
try:
while 1:
process_command(child_socket)
except KeyboardInterrupt:
sys.exit(2)
else:
child_socket.close()
return (pid, parent_socket)