summaryrefslogtreecommitdiff
path: root/buildstream/sandbox/_sandboxbwrap.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/sandbox/_sandboxbwrap.py')
-rw-r--r--buildstream/sandbox/_sandboxbwrap.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/buildstream/sandbox/_sandboxbwrap.py b/buildstream/sandbox/_sandboxbwrap.py
index cab178f0f..02f6ab30a 100644
--- a/buildstream/sandbox/_sandboxbwrap.py
+++ b/buildstream/sandbox/_sandboxbwrap.py
@@ -51,6 +51,7 @@ class SandboxBwrap(Sandbox):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.user_ns_available = kwargs['user_ns_available']
+ self.die_with_parent_available = kwargs['die_with_parent_available']
def run(self, command, flags, *, cwd=None, env=None):
stdout, stderr = self._get_output()
@@ -84,6 +85,10 @@ class SandboxBwrap(Sandbox):
# are cleaned up when the bwrap process exits.
bwrap_command += ['--unshare-pid']
+ # Ensure subprocesses are cleaned up when the bwrap parent dies.
+ if self.die_with_parent_available:
+ bwrap_command += ['--die-with-parent']
+
# Add in the root filesystem stuff first.
#
# The rootfs is mounted as RW initially so that further mounts can be