From 0a40325573b91ea71070653865f7f6a9cada2bef Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 19 Sep 2024 09:16:14 +0200 Subject: [PATCH] Preset user units on first boot as well We need to make sure the presets from /usr/lib/systemd/user-preset are applied as well. Currently only the ones from /usr/lib/systemd/system-preset are applied. --- NEWS | 3 +++ src/core/manager.c | 16 ++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index 17b79e31afd..166c337cbc5 100644 --- a/NEWS +++ b/NEWS @@ -73,6 +73,9 @@ CHANGES WITH 257 in spe: Service and system management: + * Global user units are now enabled or disabled based on preset files + on first boot as well just like system units are already. + * Environment variable $REMOTE_ADDR is now set when using socket activation for AF_UNIX sockets. diff --git a/src/core/manager.c b/src/core/manager.c index 2dddc797222..844a91b605e 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1936,12 +1936,16 @@ static void manager_preset_all(Manager *m) { UnitFilePresetMode mode = ENABLE_FIRST_BOOT_FULL_PRESET ? UNIT_FILE_PRESET_FULL : UNIT_FILE_PRESET_ENABLE_ONLY; - r = unit_file_preset_all(RUNTIME_SCOPE_SYSTEM, 0, NULL, mode, NULL, 0); - if (r < 0) - log_full_errno(r == -EEXIST ? LOG_NOTICE : LOG_WARNING, r, - "Failed to populate /etc with preset unit settings, ignoring: %m"); - else - log_info("Populated /etc with preset unit settings."); + RuntimeScope scope; + + FOREACH_ARGUMENT(scope, RUNTIME_SCOPE_SYSTEM, RUNTIME_SCOPE_GLOBAL) { + r = unit_file_preset_all(scope, 0, NULL, mode, NULL, 0); + if (r < 0) + log_full_errno(r == -EEXIST ? LOG_NOTICE : LOG_WARNING, r, + "Failed to populate /etc with %s preset unit settings, ignoring: %m", runtime_scope_to_string(scope)); + else + log_info("Populated /etc with %s preset unit settings.", runtime_scope_to_string(scope)); + } } static void manager_ready(Manager *m) { -- 2.47.3