diff options
-rw-r--r-- | NEWS | 14 | ||||
-rw-r--r-- | man/systemd-homed.service.xml | 7 | ||||
-rw-r--r-- | man/systemd.preset.xml | 4 | ||||
-rw-r--r-- | src/core/main.c | 27 | ||||
-rw-r--r-- | units/systemd-homed.service.in | 2 |
5 files changed, 36 insertions, 18 deletions
@@ -281,6 +281,20 @@ CHANGES WITH 245: to combine attachment with enablement and invocation, or detachment with stopping and disablement. + * UPGRADE ISSUE: a bug where some jobs were trimmed as redundant was + fixed, which in turn exposed bugs in unit configuration of services + which have Type=oneshot and should only run once, but do not have + RemainAfterExit=yes set. Without RemainAfterExit=yes, a one-shot + service may be started again after exiting successfully, for example + as a dependency in another transaction. Affected services included + some internal systemd services (most notably + systemd-vconsole-setup.service, which was updated to have + RemainAfterExit=yes), and plymouth-start.service. Please ensure that + plymouth has been suitably updated or patched before upgrading to + this systemd release. See + https://bugzilla.redhat.com/show_bug.cgi?id=1807771 for some + additional discussion. + Contributions from: AJ Bagwell, Alin Popa, Andreas Rammhold, Anita Zhang, Ansgar Burchardt, Antonio Russo, Arian van Putten, Ashley Davis, Balint Reczey, Bart Willems, Bastien Nocera, Benjamin Dahlhoff, Charles diff --git a/man/systemd-homed.service.xml b/man/systemd-homed.service.xml index 26789a236a..f79c2be2db 100644 --- a/man/systemd-homed.service.xml +++ b/man/systemd-homed.service.xml @@ -18,7 +18,7 @@ <refnamediv> <refname>systemd-homed.service</refname> <refname>systemd-homed</refname> - <refpurpose>Home Directory/User Account Manager</refpurpose> + <refpurpose>Home Area/User Account Manager</refpurpose> </refnamediv> <refsynopsisdiv> @@ -30,13 +30,14 @@ <title>Description</title> <para><command>systemd-homed</command> is a system service that may be used to create, remove, change or - inspect home directories.</para> + inspect home areas (directories and network mounts and real or loopback block devices with a filesystem, + optionally encrypted).</para> <para>Most of <command>systemd-homed</command>'s functionality is accessible through the <citerefentry><refentrytitle>homectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> command.</para> <para>See the <ulink url="https://systemd.io/HOME_DIRECTORY">Home Directories</ulink> documentation for - details about the format and design of home directories managed by + details about the format and design of home areas managed by <filename>systemd-homed.service</filename>.</para> <para>Each home directory managed by <filename>systemd-homed.service</filename> synthesizes a local user diff --git a/man/systemd.preset.xml b/man/systemd.preset.xml index 30c838b3d0..795da35ec8 100644 --- a/man/systemd.preset.xml +++ b/man/systemd.preset.xml @@ -70,8 +70,8 @@ either the word <literal>enable</literal> or <literal>disable</literal> followed by a space and a unit name (possibly with shell style wildcards), separated by newlines. - Empty lines and lines whose first non-whitespace character is # or - ; are ignored.</para> + Empty lines and lines whose first non-whitespace character is <literal>#</literal> or + <literal>;</literal> are ignored.</para> <para>Presets must refer to the "real" unit file, and not to any aliases. See <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> diff --git a/src/core/main.c b/src/core/main.c index ac82c723ea..1a1e09035b 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1995,21 +1995,21 @@ static int do_queue_default_job( const char **ret_error_message) { _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; - const char* default_unit; - Job *default_unit_job; - Unit *target = NULL; + const char *unit; + Job *job; + Unit *target; int r; if (arg_default_unit) - default_unit = arg_default_unit; + unit = arg_default_unit; else if (in_initrd()) - default_unit = SPECIAL_INITRD_TARGET; + unit = SPECIAL_INITRD_TARGET; else - default_unit = SPECIAL_DEFAULT_TARGET; + unit = SPECIAL_DEFAULT_TARGET; - log_debug("Activating default unit: %s", default_unit); + log_debug("Activating default unit: %s", unit); - r = manager_load_startable_unit_or_warn(m, default_unit, NULL, &target); + r = manager_load_startable_unit_or_warn(m, unit, NULL, &target); if (r < 0 && in_initrd() && !arg_default_unit) { /* Fall back to default.target, which we used to always use by default. Only do this if no * explicit configuration was given. */ @@ -2031,13 +2031,13 @@ static int do_queue_default_job( assert(target->load_state == UNIT_LOADED); - r = manager_add_job(m, JOB_START, target, JOB_ISOLATE, NULL, &error, &default_unit_job); + r = manager_add_job(m, JOB_START, target, JOB_ISOLATE, NULL, &error, &job); if (r == -EPERM) { log_debug_errno(r, "Default target could not be isolated, starting instead: %s", bus_error_message(&error, r)); sd_bus_error_free(&error); - r = manager_add_job(m, JOB_START, target, JOB_REPLACE, NULL, &error, &default_unit_job); + r = manager_add_job(m, JOB_START, target, JOB_REPLACE, NULL, &error, &job); if (r < 0) { *ret_error_message = "Failed to start default target"; return log_emergency_errno(r, "Failed to start default target: %s", bus_error_message(&error, r)); @@ -2046,9 +2046,12 @@ static int do_queue_default_job( } else if (r < 0) { *ret_error_message = "Failed to isolate default target"; return log_emergency_errno(r, "Failed to isolate default target: %s", bus_error_message(&error, r)); - } + } else + log_info("Queued %s job for default target %s.", + job_type_to_string(job->type), + unit_status_string(job->unit)); - m->default_unit_job_id = default_unit_job->id; + m->default_unit_job_id = job->id; return 0; } diff --git a/units/systemd-homed.service.in b/units/systemd-homed.service.in index 512804cf0e..7cf98e6fa6 100644 --- a/units/systemd-homed.service.in +++ b/units/systemd-homed.service.in @@ -8,7 +8,7 @@ # (at your option) any later version. [Unit] -Description=Home Manager +Description=Home Area Manager Documentation=man:systemd-homed.service(8) RequiresMountsFor=/home |