summaryrefslogtreecommitdiffstats
path: root/bin/nova-api
diff options
context:
space:
mode:
authorNikolay Sokolov <nsokolov@griddynamics.com>2011-07-06 00:24:55 +0400
committerNikolay Sokolov <nsokolov@griddynamics.com>2011-07-06 00:24:55 +0400
commitfde44cdf69ad1884adf7007ae432438de5bcd664 (patch)
tree9f5193a5013daeb5e7cc103dcaeb5b09c6204a3a /bin/nova-api
parent8061565d41119695046d08604d7e46a90d7ea500 (diff)
Signal handler cleanup, proper ^C handling.
Diffstat (limited to 'bin/nova-api')
-rwxr-xr-xbin/nova-api14
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__':