From 6e5eea632c09cbfdd6ef60d071c51765d5d748b7 Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Mon, 7 Apr 2014 12:55:30 +0800 Subject: [PATCH] Subprocesses are killed when CTRL + C --- lib/tools.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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) -- 2.11.0