diff options
author | Jan Alexander Steffens (heftig) <heftig@archlinux.org> | 2023-06-29 01:12:41 +0200 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2023-07-21 19:41:22 +0200 |
commit | 5f4fd52e3836ddddb25a0f9e15d0acfed06f693d (patch) | |
tree | 31f39b2698e6a98aeff8008b7d50a607ab936278 /src | |
parent | 1b251901764789bd547f50b8ad701f3089170ce3 (diff) | |
download | devtools-5f4fd52e3836ddddb25a0f9e15d0acfed06f693d.tar.xz |
feat(arch-nspawn): Use a unique scope name instead of --keep-unit
`--keep-unit` is really only for use in services like
`systemd-nspawn@.service`.
The parameter was added in commit 000ea6c7bbf6191b because
systemd-nspawn defaults the name of the machine (and thus the generated
scope) to the name of the working directory, which is not unique. Thus
spawning a container from `archbuild/extra-x86_64/foo` while
`archbuild/testing-x86_64/foo` is already running would fail.
We can avoid the unit conflict by giving the container a unique machine
name. Creating a scope also allows us to place the container in a slice
hierarchy for resource control.
Diffstat (limited to 'src')
-rw-r--r-- | src/arch-nspawn.in | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch-nspawn.in b/src/arch-nspawn.in index 53b77df..1eba0a6 100644 --- a/src/arch-nspawn.in +++ b/src/arch-nspawn.in @@ -60,7 +60,8 @@ nspawn_args=( --directory="$working_dir" --setenv="PATH=/usr/local/sbin:/usr/local/bin:/usr/bin" --register=no - --keep-unit + --slice="devtools-$(systemd-escape "${SUDO_USER:-$USER}")" + --machine="arch-nspawn-$$" --as-pid2 ) |