Compare commits

...

8 Commits

Author SHA1 Message Date
Anita Zhang 557b9716f6
Merge pull request #15097 from keszybz/job-logging-and-news-update
Job logging and news update
2020-03-12 13:01:00 -07:00
Christian Hesse ddee0e815e shared/ask-password-api: do not show hint on echo
Giving --echo to systemd-ask-password allows to echo the user input instead
of masking it. This is useful when querying for usernames or similar.

Showing "(press TAB for no echo)" does not make sense there, so do not.
Note that pressing TAB or ESC still disables echo.
2020-03-12 17:55:23 +01:00
nabijaczleweli 567a530760 fstab-generator: handle systemd.swap= command-line argument
Don't generate swap units if set to false

The inverse of this argument is present as "noswap" on Debian sysvinit

Ref:
4422988cb4/debian/vars.sh (L34)
4422988cb4/debian/src/initscripts/etc/init.d/mountall.sh (L78)

Fixes https://github.com/systemd/systemd/issues/6686
2020-03-12 17:52:43 +01:00
Zbigniew Jędrzejewski-Szmek 2ca17c7801 NEWS: add late note about job trimming issue
Closes #15091.
2020-03-12 15:26:47 +01:00
Zbigniew Jędrzejewski-Szmek c86c31d9ca core: log an info line about the default target
If the default target is not specified on the kernel command line, it
may not be obvious what we are booting into. See for example
https://github.com/systemd/systemd/issues/15062#issuecomment-597577464.
2020-03-12 15:09:22 +01:00
Zbigniew Jędrzejewski-Szmek f1d075dcb7 core: shorten local variable names in do_queue_default_job()
There is really no risk of confusion here: it's a simple function
that queues one job.
2020-03-11 13:43:19 +01:00
Zbigniew Jędrzejewski-Szmek b5947b5b10 homed: replace "home directory" with "home area" in a few places 2020-03-11 13:43:19 +01:00
Zbigniew Jędrzejewski-Szmek 0b1b0a01ab man: add a tiny bit of markup 2020-03-11 13:43:19 +01:00
8 changed files with 60 additions and 19 deletions

14
NEWS
View File

@ -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

View File

@ -198,6 +198,15 @@
automatically populate <filename>/etc</filename>, and also <filename>/var</filename> in case of
<literal>systemd.volatile=yes</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.swap</varname></term>
<listitem><para>Takes a boolean argument or enables the option if specified
without an argument. If disabled, causes the generator to ignore
any swap devices configured in <filename>/etc/fstab</filename>.
Defaults to enabled.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -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

View File

@ -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>

View File

@ -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;
}

View File

@ -40,6 +40,7 @@ typedef enum MountpointFlags {
static const char *arg_dest = NULL;
static const char *arg_dest_late = NULL;
static bool arg_fstab_enabled = true;
static bool arg_swap_enabled = true;
static char *arg_root_what = NULL;
static char *arg_root_fstype = NULL;
static char *arg_root_options = NULL;
@ -98,6 +99,11 @@ static int add_swap(
assert(what);
assert(me);
if (!arg_swap_enabled) {
log_info("Swap unit generation disabled on kernel command line, ignoring fstab swap entry for %s.", what);
return 0;
}
if (access("/proc/swaps", F_OK) < 0) {
log_info("Swap not supported, ignoring fstab swap entry for %s.", what);
return 0;
@ -896,6 +902,14 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
arg_volatile_mode = m;
} else
arg_volatile_mode = VOLATILE_YES;
} else if (streq(key, "systemd.swap")) {
r = value ? parse_boolean(value) : 1;
if (r < 0)
log_warning("Failed to parse systemd.swap switch %s. Ignoring.", value);
else
arg_swap_enabled = r;
}
return 0;

View File

@ -469,7 +469,7 @@ int ask_password_tty(
(void) loop_write(ttyfd, message, strlen(message), false);
(void) loop_write(ttyfd, " ", 1, false);
if (!(flags & ASK_PASSWORD_SILENT)) {
if (!(flags & ASK_PASSWORD_SILENT) && !(flags & ASK_PASSWORD_ECHO)) {
if (use_color)
(void) loop_write(ttyfd, ANSI_GREY, STRLEN(ANSI_GREY), false);
(void) loop_write(ttyfd, PRESS_TAB, strlen(PRESS_TAB), false);

View File

@ -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