X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2c77b59f16d698fa5368c2aa28f5c304c3f7e53b..f6f4efcf298d5c37b5eb8a88eb164cf8b77ae928:/services/fuse/bin/arv-mount diff --git a/services/fuse/bin/arv-mount b/services/fuse/bin/arv-mount index 4f1d23f021..b4afffab06 100755 --- a/services/fuse/bin/arv-mount +++ b/services/fuse/bin/arv-mount @@ -65,14 +65,22 @@ collections on the server.""") # wait until the driver is finished initializing operations.initlock.wait() + rc = 255 try: 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 + + # wait for process to complete. rc = sp.wait() + + # restore default signal handlers. + signal.signal(signal.SIGINT, signal.SIG_DFL) + signal.signal(signal.SIGTERM, signal.SIG_DFL) + signal.signal(signal.SIGQUIT, signal.SIG_DFL) except OSError as e: sys.stderr.write('arv-mount: %s -- exec %s\n' % (str(e), args.exec_args)) rc = e.errno