Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <heftig@archlinux.org>2023-06-29 01:12:41 +0200
committerLevente Polyak <anthraxx@archlinux.org>2023-07-21 19:41:22 +0200
commit5f4fd52e3836ddddb25a0f9e15d0acfed06f693d (patch)
tree31f39b2698e6a98aeff8008b7d50a607ab936278
parent1b251901764789bd547f50b8ad701f3089170ce3 (diff)
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.
-rw-r--r--src/arch-nspawn.in3
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
)