From 2c77b59f16d698fa5368c2aa28f5c304c3f7e53b Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Mon, 2 Jun 2014 14:22:00 -0400 Subject: [PATCH 1/1] 2882: arv-mount --exec forwards SIGINT and SIGTERM to the underlying subprocess. --- services/fuse/bin/arv-mount | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/fuse/bin/arv-mount b/services/fuse/bin/arv-mount index 904fbf1b8d..4f1d23f021 100755 --- a/services/fuse/bin/arv-mount +++ b/services/fuse/bin/arv-mount @@ -5,6 +5,7 @@ import arvados import subprocess import argparse import daemon +import signal if __name__ == '__main__': # Handle command line parameters @@ -64,9 +65,14 @@ collections on the server.""") # wait until the driver is finished initializing operations.initlock.wait() - rc = 255 try: - rc = subprocess.call(args.exec_args, shell=False) + sp = subprocess.Popen(args.exec_args, shell=False) + # forward signals to the process. + signal.signal(signal.SIGINT, lambda signum, frame: sp.send_signal(signum)) + signal.signal(signal.SIGTERM, lambda signum, frame: sp.send_signal(signum)) + signal.signal(signal.SIGQUIT, lambda signum, frame: sp.send_signal(signum)) + rc = 255 + rc = sp.wait() except OSError as e: sys.stderr.write('arv-mount: %s -- exec %s\n' % (str(e), args.exec_args)) rc = e.errno -- 2.30.2