summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--morphlib/extensions.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/morphlib/extensions.py b/morphlib/extensions.py
index aa0622b8..59281d66 100644
--- a/morphlib/extensions.py
+++ b/morphlib/extensions.py
@@ -202,7 +202,7 @@ class ExtensionSubprocess(object):
self._report_stderr = report_stderr
self._report_logger = report_logger
- def run(self, filename, args, cwd, env):
+ def run(self, filename, args, cwd, env, separate_mount_namespace=True):
'''Run an extension.
Anything written by the extension to stdout is passed to status(), thus
@@ -223,8 +223,14 @@ class ExtensionSubprocess(object):
# need to inherit
def close_read_end():
os.close(log_read_fd)
+
+ cmdline = [filename] + list(args)
+
+ if separate_mount_namespace:
+ cmdline = morphlib.util.unshared_cmdline(cmdline)
+
p = subprocess.Popen(
- morphlib.util.unshared_cmdline([filename] + list(args)),
+ cmdline,
cwd=cwd, env=new_env,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
preexec_fn=close_read_end)