diff options
author | Sol Jerome <sol.jerome@gmail.com> | 2013-06-26 09:15:40 -0500 |
---|---|---|
committer | Sol Jerome <sol.jerome@gmail.com> | 2013-06-26 09:15:40 -0500 |
commit | 8b49d8b198564d0dae3e40b99b6f9d76188dcda7 (patch) | |
tree | 32215bc2e1354aff55e731875890554d315bed10 /src/sbin | |
parent | 50e8555aac2830ca2b848003a811b1b418fd0f79 (diff) | |
download | bcfg2-8b49d8b198564d0dae3e40b99b6f9d76188dcda7.tar.gz bcfg2-8b49d8b198564d0dae3e40b99b6f9d76188dcda7.tar.bz2 bcfg2-8b49d8b198564d0dae3e40b99b6f9d76188dcda7.zip |
Revert "Core: properly handle Ctrl-C"
This reverts commit 4568c44372c99ba809826e016680da9b881bd8e8.
Trying to handle ^c in the core is difficult and can break STDOUT for
interactive programs that invoke the core.
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Conflicts:
src/lib/Bcfg2/Server/Core.py
src/sbin/bcfg2-test
tools/bcfg2-profile-templates.py
Diffstat (limited to 'src/sbin')
-rwxr-xr-x | src/sbin/bcfg2-test | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/sbin/bcfg2-test b/src/sbin/bcfg2-test index c33143a04..54ddad6df 100755 --- a/src/sbin/bcfg2-test +++ b/src/sbin/bcfg2-test @@ -5,6 +5,7 @@ without failures""" import os import sys +import signal import fnmatch import logging import Bcfg2.Logger @@ -193,6 +194,21 @@ def run_child(setup, clients, queue): def parse_args(): """ Parse command line arguments. """ optinfo = dict(Bcfg2.Options.TEST_COMMON_OPTIONS) + + +def get_sigint_handler(core): + """ Get a function that handles SIGINT/Ctrl-C by shutting down the + core and exiting properly.""" + + def hdlr(sig, frame): # pylint: disable=W0613 + """ Handle SIGINT/Ctrl-C by shutting down the core and exiting + properly. """ + core.shutdown() + os._exit(1) # pylint: disable=W0212 + + return hdlr + + optinfo.update(Bcfg2.Options.CLI_COMMON_OPTIONS) optinfo.update(Bcfg2.Options.SERVER_COMMON_OPTIONS) setup = Bcfg2.Options.OptionParser(optinfo) @@ -220,6 +236,7 @@ def parse_args(): logger.warning("Python multiprocessing library not found, running " "with no children") setup['children'] = 0 + signal.signal(signal.SIGINT, get_sigint_handler(core)) if (setup['children'] and ('--with-xunit' in setup['noseopts'] or '--xunit-file' in setup['noseopts'])): |