diff --git a/python/scripts/stub_template_host.txt b/python/scripts/stub_template_host.txt index 5eedc180c..2d1bd4a9b 100644 --- a/python/scripts/stub_template_host.txt +++ b/python/scripts/stub_template_host.txt @@ -3,6 +3,7 @@ import os import tempfile import shutil +import signal import sys import subprocess import zipfile @@ -43,7 +44,18 @@ def Main(): sys.stdout.flush() # close_fds=False so that you can run binaries with files provided on the command line: # my_python_app --file <(echo foo) - sys.exit(subprocess.call(args, close_fds=False)) + p = subprocess.Popen(args, close_fds=False) + + def handler(sig, frame): + p.send_signal(sig) + + # Redirect SIGINT and SIGTERM to subprocess + signal.signal(signal.SIGINT, handler) + signal.signal(signal.SIGTERM, handler) + + p.wait() + + sys.exit(p.returncode) finally: shutil.rmtree(runfiles_path, ignore_errors=True)