refine exiting

This commit is contained in:
clowwindy 2014-06-01 17:56:41 +08:00
parent 7a1647278f
commit 5e19fdc66b
2 changed files with 9 additions and 7 deletions

View file

@ -54,7 +54,8 @@ def main():
tcprelay.TCPRelay(config, True).start()
while sys.stdin.read():
pass
except KeyboardInterrupt:
except (KeyboardInterrupt, IOError, OSError) as e:
logging.error(e)
os._exit(0)
if __name__ == '__main__':

View file

@ -62,14 +62,15 @@ def main():
udp_servers.append(udp_server)
def run_server():
for tcp_server in tcp_servers:
tcp_server.start()
for udp_server in udp_servers:
udp_server.start()
try:
for tcp_server in tcp_servers:
tcp_server.start()
for udp_server in udp_servers:
udp_server.start()
while sys.stdin.read():
pass
except KeyboardInterrupt:
except (KeyboardInterrupt, IOError, OSError) as e:
logging.error(e)
os._exit(0)
if int(config['workers']) > 1:
@ -86,7 +87,7 @@ def main():
else:
children.append(r)
if not is_child:
def handler(signum, frame):
def handler(signum, _):
for pid in children:
os.kill(pid, signum)
os.waitpid(pid, 0)