From d9e8b9a3ed7b26e9cb6bb891cf0d5bb4fcd66dbf Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Tue, 20 Mar 2012 12:29:36 -0400 Subject: Wait for child process to terminate after receiving SIGINT in ipautil.run. Do cleanup on KeyboardInterrupt rather than in custom SIGINT handler in ipa-replica-conncheck. https://fedorahosted.org/freeipa/ticket/2127 --- install/tools/ipa-replica-conncheck | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'install') diff --git a/install/tools/ipa-replica-conncheck b/install/tools/ipa-replica-conncheck index 44b3caa45..23411a351 100755 --- a/install/tools/ipa-replica-conncheck +++ b/install/tools/ipa-replica-conncheck @@ -158,12 +158,10 @@ def clean_responders(responders): responders.remove(responder) def sigterm_handler(signum, frame): - print_info("\nCleaning up...") - - global RESPONDERS - clean_responders(RESPONDERS) - - sys.exit(1) + # do what SIGINT does (raise a KeyboardInterrupt) + sigint_handler = signal.getsignal(signal.SIGINT) + if callable(sigint_handler): + sigint_handler(signum, frame) def configure_krb5_conf(realm, kdc, filename): @@ -268,7 +266,6 @@ def main(): root_logger.debug("missing options might be asked for interactively later\n") signal.signal(signal.SIGTERM, sigterm_handler) - signal.signal(signal.SIGINT, sigterm_handler) required_ports = BASE_PORTS if options.check_ca: @@ -384,6 +381,7 @@ if __name__ == "__main__": except SystemExit, e: sys.exit(e) except KeyboardInterrupt: + print_info("\nCleaning up...") sys.exit(1) except RuntimeError, e: sys.exit(e) @@ -395,4 +393,3 @@ if __name__ == "__main__": os.remove(file_name) except OSError: pass - -- cgit