diff options
| author | Nikolay Sokolov <nsokolov@griddynamics.com> | 2011-07-06 00:24:55 +0400 |
|---|---|---|
| committer | Nikolay Sokolov <nsokolov@griddynamics.com> | 2011-07-06 00:24:55 +0400 |
| commit | fde44cdf69ad1884adf7007ae432438de5bcd664 (patch) | |
| tree | 9f5193a5013daeb5e7cc103dcaeb5b09c6204a3a /bin/nova-api | |
| parent | 8061565d41119695046d08604d7e46a90d7ea500 (diff) | |
Signal handler cleanup, proper ^C handling.
Diffstat (limited to 'bin/nova-api')
| -rwxr-xr-x | bin/nova-api | 14 |
1 files changed, 6 insertions, 8 deletions
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__': |
