diff --git a/bin/keystone-all b/bin/keystone-all index bc4ab4b8e1..d961669cdb 100755 --- a/bin/keystone-all +++ b/bin/keystone-all @@ -4,6 +4,7 @@ import greenlet import logging import os +import signal import sys # If ../keystone/__init__.py exists, add ../ to Python search path, so that @@ -31,7 +32,15 @@ def create_server(conf, name, host, port): return wsgi.Server(app, host=host, port=port) +def sigint_handler(signal, frame): + """Exits at SIGINT signal.""" + logging.debug('SIGINT received, stopping servers.') + sys.exit(0) + + def serve(*servers): + signal.signal(signal.SIGINT, sigint_handler) + for server in servers: logging.debug("starting server %s on port %s", server.application,