diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-03-22 15:18:28 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-03-22 15:18:28 +0000 |
| commit | f02503adbe89b0155d4ea94095ac4eeea5f2efe8 (patch) | |
| tree | 434d2058227cd288ab3629979b9ea7701ecab8ac /nova/service.py | |
| parent | 280326dff38799d2d945b561c25d15831723dc13 (diff) | |
| parent | eacfb8fe53b4bb6fab15e2fd8c34acc350214a8c (diff) | |
Merge "Capture SIGTERM and Shut down python services cleanly."
Diffstat (limited to 'nova/service.py')
| -rw-r--r-- | nova/service.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nova/service.py b/nova/service.py index 1da10e697..c77419432 100644 --- a/nova/service.py +++ b/nova/service.py @@ -21,6 +21,7 @@ import inspect import os +import signal import eventlet import greenlet @@ -126,6 +127,15 @@ class Launcher(object): :returns: None """ + def sigterm(sig, frame): + LOG.audit(_("SIGTERM received")) + # NOTE(jk0): Raise a ^C which is caught by the caller and cleanly + # shuts down the service. This does not yet handle eventlet + # threads. + raise KeyboardInterrupt + + signal.signal(signal.SIGTERM, sigterm) + for service in self._services: try: service.wait() |
