diff --git a/bin/keystone-all b/bin/keystone-all index f58c2a03a6..075b007edd 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 @@ -30,7 +31,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,