aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpki/rtr/server.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/rpki/rtr/server.py b/rpki/rtr/server.py
index f1b741f9..0e6b86cc 100644
--- a/rpki/rtr/server.py
+++ b/rpki/rtr/server.py
@@ -519,7 +519,10 @@ def listener_main(args):
listener.listen(5)
logging.debug("[Listening on port %s]", args.port)
while True:
- s, ai = listener.accept()
+ try:
+ s, ai = listener.accept()
+ except KeyboardInterrupt:
+ sys.exit(0)
logging.debug("[Received connection from %r]", ai)
pid = os.fork()
if pid == 0:
@@ -531,15 +534,15 @@ def listener_main(args):
sys.exit()
else:
logging.debug("[Spawned server %d]", pid)
- try:
- while True:
+ while True:
+ try:
pid, status = os.waitpid(0, os.WNOHANG) # pylint: disable=W0612
if pid:
logging.debug("[Server %s exited]", pid)
- else:
- break
- except: # pylint: disable=W0702
- pass
+ continue
+ except: # pylint: disable=W0702
+ pass
+ break
def argparse_setup(subparsers):