From: Michal Sekletar Date: Wed, 7 Mar 2018 15:41:41 +0000 (+0100) Subject: core: don't setup init.scope in test mode (#8380) X-Git-Tag: v239~573 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a9e8ecf0374c675831208559ba37749a8f9719ef;p=thirdparty%2Fsystemd.git core: don't setup init.scope in test mode (#8380) Reproducer: $ meson build && cd build $ ninja $ sudo useradd test $ sudo su test $ ./systemd --system --test ... Failed to create /user.slice/user-1000.slice/session-6.scope/init.scope control group: Permission denied Failed to allocate manager object: Permission denied Above error message is caused by the fact that user test didn't have its own session and we tried to set up init.scope already running as user test in the directory owned by different user. Let's skip setting up init.scope altogether since we won't be launching processes anyway. --- diff --git a/src/core/manager.c b/src/core/manager.c index 84adb9c6660..cc9a17a2fd4 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -759,9 +759,11 @@ int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) { if (r < 0) goto fail; - r = manager_setup_cgroup(m); - if (r < 0) - goto fail; + if (test_run_flags == 0) { + r = manager_setup_cgroup(m); + if (r < 0) + goto fail; + } r = manager_setup_time_change(m); if (r < 0)