From fde44cdf69ad1884adf7007ae432438de5bcd664 Mon Sep 17 00:00:00 2001 From: Nikolay Sokolov Date: Wed, 6 Jul 2011 00:24:55 +0400 Subject: Signal handler cleanup, proper ^C handling. --- bin/nova-api | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'bin/nova-api') diff --git a/bin/nova-api b/bin/nova-api index 71c68f24d..a51eb1b6e 100755 --- a/bin/nova-api +++ b/bin/nova-api @@ -35,11 +35,6 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): import nova.service import nova.utils -def create_kill_handler(launcher): - def handle(signal, frame): - launcher.stop() - return handle - def main(): """Launch EC2 and OSAPI services.""" nova.utils.Bootstrapper.bootstrap_binary(sys.argv) @@ -51,9 +46,12 @@ def main(): launcher.launch_service(ec2) launcher.launch_service(osapi) - signal.signal(signal.SIGTERM, create_kill_handler(launcher)) - - launcher.wait() + signal.signal(signal.SIGTERM, lambda *_: launcher.stop()) + + try: + launcher.wait() + except KeyboardInterrupt: + launcher.stop() if __name__ == '__main__': -- cgit