diff --git a/src/server/ws/ws_server.py b/src/server/ws/ws_server.py index 399e98e..374d01b 100755 --- a/src/server/ws/ws_server.py +++ b/src/server/ws/ws_server.py @@ -207,5 +207,13 @@ async def client_handler(websocket, path): log('Hosting server on port %d' % args.port) ws_server = websockets.serve(client_handler, host=None, port=args.port, ssl=ssl_ctx) loop = asyncio.get_event_loop() -loop.run_until_complete(ws_server) -loop.run_forever() +try: + loop.run_until_complete(ws_server) + loop.run_forever() +except KeyboardInterrupt: + log("KeyboardInterrupt received, exiting.") + if total_connections != 0: log("Note that %d connections will be lost" % total_connections) +except Exception as e: + log("Exception %r encountered, exiting script" % e) + if total_connections != 0: log("Note that %d connections will be lost" % total_connections) + raise