From 77f16dbd6d93f2b4a96984254cca25cab03479af Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 3 Dec 2020 23:08:21 +0000 Subject: [PATCH] Don't assume /run/systemd exists when creating unit-root When running tests in a mkosi container, /run/systemd might not exist yet in the container which causes test-execute to fail. Fixes #17842. --- src/core/namespace.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/namespace.c b/src/core/namespace.c index 0d30f17b9a..cdf427a6ea 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -1541,6 +1541,11 @@ int setup_namespace( if (root_directory) root = root_directory; else { + /* /run/systemd should have been created by PID 1 early on already, but in some cases, like + * when running tests (test-execute), it might not have been created yet so let's make sure + * we create it if it doesn't already exist. */ + (void) mkdir_p_label("/run/systemd", 0755); + /* Always create the mount namespace in a temporary directory, instead of operating * directly in the root. The temporary directory prevents any mounts from being * potentially obscured my other mounts we already applied.