From: Frederic Massart Date: Mon, 7 Apr 2014 04:55:30 +0000 (+0800) Subject: Subprocesses are killed when CTRL + C X-Git-Tag: v1.1~13 X-Git-Url: https://git.cameron1729.xyz/?a=commitdiff_plain;h=6e5eea632c09cbfdd6ef60d071c51765d5d748b7;p=mdk.git Subprocesses are killed when CTRL + C --- diff --git a/lib/tools.py b/lib/tools.py index 2d25845..264cba3 100644 --- a/lib/tools.py +++ b/lib/tools.py @@ -130,8 +130,12 @@ def process(cmd, cwd=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE): if type(cmd) != list: cmd = shlex.split(str(cmd)) logging.debug(' '.join(cmd)) - proc = subprocess.Popen(cmd, cwd=cwd, stdout=stdout, stderr=stderr) - (out, err) = proc.communicate() + try: + proc = subprocess.Popen(cmd, cwd=cwd, stdout=stdout, stderr=stderr) + (out, err) = proc.communicate() + except KeyboardInterrupt as e: + proc.kill() + raise e return (proc.returncode, out, err)