From deb32d6f2ef022dda876be76c1203962a53f888c Mon Sep 17 00:00:00 2001 From: Tomas Krizek Date: Thu, 7 Jun 2018 17:41:00 +0200 Subject: [PATCH] pydnstest/testserver: handle SIGTERM, SIGINT gracefully --- pydnstest/testserver.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pydnstest/testserver.py b/pydnstest/testserver.py index e365cb2..3a59131 100644 --- a/pydnstest/testserver.py +++ b/pydnstest/testserver.py @@ -4,8 +4,10 @@ import argparse import itertools import logging import os +import signal import select import socket +import sys import threading import time @@ -256,13 +258,17 @@ def standalone_self_test(): server.start() logging.info("[==========] Mirror server running at %s", server.address()) - try: - while True: - time.sleep(0.5) - except KeyboardInterrupt: + + def exit(signum, frame): logging.info("[==========] Shutdown.") - pass - server.stop() + server.stop() + sys.exit(128 + signum) + + signal.signal(signal.SIGINT, exit) + signal.signal(signal.SIGTERM, exit) + + while True: + time.sleep(0.5) if __name__ == '__main__': -- GitLab