From 2a3a42683c06f43a6166fd29ce67cc4621ad1347 Mon Sep 17 00:00:00 2001 From: Qiao Yang Date: Wed, 22 Mar 2023 00:17:22 +0000 Subject: [PATCH] stub_template_host redirect SIGINT and SIGTERM to subprocess Test: manual Change-Id: I561f581f7413dc18b2d449f4ef338db3b6b9ca47 --- python/scripts/stub_template_host.txt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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)