projects
/
arvados.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
270a94c
)
2882: arv-mount --exec forwards SIGINT and SIGTERM to the underlying subprocess.
author
Peter Amstutz <peter.amstutz@curoverse.com>
Mon, 2 Jun 2014 18:22:00 +0000
(14:22 -0400)
committer
Peter Amstutz <peter.amstutz@curoverse.com>
Mon, 2 Jun 2014 18:22:00 +0000
(14:22 -0400)
services/fuse/bin/arv-mount
patch
|
blob
|
history
diff --git
a/services/fuse/bin/arv-mount
b/services/fuse/bin/arv-mount
index 904fbf1b8d8958804575a0495b35616acc6f79e0..4f1d23f02180466fd64e7544096af7cbe0407672 100755
(executable)
--- 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 subprocess
import argparse
import daemon
+import signal
if __name__ == '__main__':
# Handle command line parameters
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()
# wait until the driver is finished initializing
operations.initlock.wait()
- rc = 255
try:
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
except OSError as e:
sys.stderr.write('arv-mount: %s -- exec %s\n' % (str(e), args.exec_args))
rc = e.errno