machine-id-commit: merge machine-id-commit functionality into machine-id-setup

And remove machine-id-commit as separate binary.

There's really no point in keeping this separate, as the sources are
pretty much identical, and have pretty identical interfaces. Let's unify
this in one binary.

Given that machine-id-commit was a private binary of systemd (shipped in
/usr/lib/) removing the tool is not an API break.

While we are at it, improve the documentation of the command substantially.
This commit is contained in:
Lennart Poettering 2015-09-23 19:36:21 +02:00
parent c2fc2c2560
commit 4a9b1dd4ad
11 changed files with 118 additions and 303 deletions

1
.gitignore vendored
View file

@ -96,7 +96,6 @@
/systemd-kmsg-syslogd /systemd-kmsg-syslogd
/systemd-localed /systemd-localed
/systemd-logind /systemd-logind
/systemd-machine-id-commit
/systemd-machine-id-setup /systemd-machine-id-setup
/systemd-machined /systemd-machined
/systemd-modules-load /systemd-modules-load

View file

@ -102,7 +102,6 @@ MANPAGES += \
man/systemd-inhibit.1 \ man/systemd-inhibit.1 \
man/systemd-initctl.service.8 \ man/systemd-initctl.service.8 \
man/systemd-journald.service.8 \ man/systemd-journald.service.8 \
man/systemd-machine-id-commit.1 \
man/systemd-machine-id-commit.service.8 \ man/systemd-machine-id-commit.service.8 \
man/systemd-machine-id-setup.1 \ man/systemd-machine-id-setup.1 \
man/systemd-notify.1 \ man/systemd-notify.1 \
@ -2351,7 +2350,6 @@ EXTRA_DIST += \
man/systemd-localed.service.xml \ man/systemd-localed.service.xml \
man/systemd-logind.service.xml \ man/systemd-logind.service.xml \
man/systemd-machine-id-commit.service.xml \ man/systemd-machine-id-commit.service.xml \
man/systemd-machine-id-commit.xml \
man/systemd-machine-id-setup.xml \ man/systemd-machine-id-setup.xml \
man/systemd-machined.service.xml \ man/systemd-machined.service.xml \
man/systemd-modules-load.service.xml \ man/systemd-modules-load.service.xml \

View file

@ -397,7 +397,6 @@ rootlibexec_PROGRAMS = \
systemd-remount-fs \ systemd-remount-fs \
systemd-reply-password \ systemd-reply-password \
systemd-fsck \ systemd-fsck \
systemd-machine-id-commit \
systemd-ac-power \ systemd-ac-power \
systemd-sysctl \ systemd-sysctl \
systemd-sleep \ systemd-sleep \
@ -2331,6 +2330,9 @@ systemd_machine_id_setup_SOURCES = \
systemd_machine_id_setup_LDADD = \ systemd_machine_id_setup_LDADD = \
libshared.la libshared.la
SYSINIT_TARGET_WANTS += \
systemd-machine-id-commit.service
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
systemd_sysctl_SOURCES = \ systemd_sysctl_SOURCES = \
src/sysctl/sysctl.c src/sysctl/sysctl.c
@ -2352,18 +2354,6 @@ systemd_fsck_SOURCES = \
systemd_fsck_LDADD = \ systemd_fsck_LDADD = \
libshared.la libshared.la
# ------------------------------------------------------------------------------
systemd_machine_id_commit_SOURCES = \
src/machine-id-commit/machine-id-commit.c \
src/core/machine-id-setup.c \
src/core/machine-id-setup.h
systemd_machine_id_commit_LDADD = \
libshared.la
SYSINIT_TARGET_WANTS += \
systemd-machine-id-commit.service
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
systemd_ac_power_SOURCES = \ systemd_ac_power_SOURCES = \
src/ac-power/ac-power.c src/ac-power/ac-power.c

View file

@ -63,7 +63,7 @@
<para>The machine ID is usually generated from a random source <para>The machine ID is usually generated from a random source
during system installation and stays constant for all subsequent during system installation and stays constant for all subsequent
boots. Optionally, for stateless systems, it is generated during boots. Optionally, for stateless systems, it is generated during
runtime at boot if it is found to be empty.</para> runtime at early boot if it is found to be empty.</para>
<para>The machine ID does not change based on user configuration <para>The machine ID does not change based on user configuration
or when hardware is replaced.</para> or when hardware is replaced.</para>

View file

@ -42,55 +42,50 @@
<refnamediv> <refnamediv>
<refname>systemd-machine-id-commit.service</refname> <refname>systemd-machine-id-commit.service</refname>
<refpurpose>Commit transient machine-id to disk</refpurpose> <refpurpose>Commit a transient machine-id to disk</refpurpose>
</refnamediv> </refnamediv>
<refsynopsisdiv> <refsynopsisdiv>
<para><filename>systemd-machine-id-commit.service</filename></para> <para><filename>systemd-machine-id-commit.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-machine-id-commit</filename></para>
</refsynopsisdiv> </refsynopsisdiv>
<refsect1> <refsect1>
<title>Description</title> <title>Description</title>
<para><filename>systemd-machine-id-commit.service</filename> is a <para><filename>systemd-machine-id-commit.service</filename> is an
service responsible for committing any transient early-boot service responsible for committing transient
<filename>/etc/machine-id</filename> file to a writable file <filename>/etc/machine-id</filename> files to a writable disk file
system. See system. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para> for more information about machine IDs.</para>
<para>This service is started shortly after <para>This service is started after
<filename>local-fs.target</filename> if <filename>local-fs.target</filename> in case
<filename>/etc/machine-id</filename> is an independent mount point <filename>/etc/machine-id</filename> is a mount point of its own
(probably a tmpfs one) and /etc is writable. (usually from a memory file system such as
<command>systemd-machine-id-commit</command> will then write <literal>tmpfs</literal>) and /etc is writable. The service will
current machine ID to disk and unmount the transient invoke <command>systemd-machine-id-setup --commit</command>, which
writes the current transient machine ID to disk and unmount the
<filename>/etc/machine-id</filename> file in a race-free manner to <filename>/etc/machine-id</filename> file in a race-free manner to
ensure that file is always valid for other processes.</para> ensure that file is always valid and accessible for other
processes. See
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
for details.</para>
<para>Note that the traditional way to initialize the machine ID <para>The main use case of this service are systems where
in <filename>/etc/machine-id</filename> is to use <filename>/etc/machine-id</filename> is read-only and initially
<command>systemd-machine-id-setup</command> by system installer not initialized. In this case the system manager will generate a
tools. You can also use transient machine ID file on a memory file system, and mount it
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry> over <filename>/etc/machine-id</filename>, during the early boot
to initialize the machine ID on mounted (but not booted) system phase. This service is then invoked in a later boot phase, as soon
images. The main use case for that service is as <filename>/etc</filename> has been remounted writable and the
<filename>/etc/machine-id</filename> being an empty file at boot ID may thus be committed to disk to make it permanent.</para>
and initrd chaining to systemd giving it a read only file system
that will be turned read-write later during the boot
process.</para>
<para>There is no consequence if that service fails other than a
newer machine-id will be generated during next system boot.
</para>
</refsect1> </refsect1>
<refsect1> <refsect1>
<title>See Also</title> <title>See Also</title>
<para> <para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>

View file

@ -1,123 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
Copyright 2014 Didier Roche
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="systemd-machine-id-commit"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-machine-id-commit</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Didier</firstname>
<surname>Roche</surname>
<email>didrocks@ubuntu.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-machine-id-commit</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-machine-id-commit</refname>
<refpurpose>Commit transient machine ID to /etc/machine-id</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-machine-id-commit</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>systemd-machine-id-commit</command> may be used to
write on disk any transient machine ID mounted as a temporary file
system in <filename>/etc/machine-id</filename> at boot time. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para>This tool will execute no operation if
<filename>/etc/machine-id</filename> doesn't contain any valid
machine ID, isn't mounted as an independent temporary file system,
or <filename>/etc</filename> is read-only. If those conditions are
met, it will then write current machine ID to disk and unmount the
transient <filename>/etc/machine-id</filename> file in a race-free
manner to ensure that this file is always valid for other
processes.</para>
<para>Note that the traditional way to initialize the machine ID
in <filename>/etc/machine-id</filename> is to use
<command>systemd-machine-id-setup</command> by system installer
tools. You can also use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not booted) system
images.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path
as an argument. All paths will be
prefixed with the given alternate
<replaceable>root</replaceable> path,
including config search paths.
</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View file

@ -1,4 +1,4 @@
<?xml version='1.0'?> <!--*-nxml-*--> <?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
@ -35,6 +35,12 @@
<surname>Poettering</surname> <surname>Poettering</surname>
<email>lennart@poettering.net</email> <email>lennart@poettering.net</email>
</author> </author>
<author>
<contrib>Developer</contrib>
<firstname>Didier</firstname>
<surname>Roche</surname>
<email>didrocks@ubuntu.com</email>
</author>
</authorgroup> </authorgroup>
</refentryinfo> </refentryinfo>
@ -59,30 +65,43 @@
<para><command>systemd-machine-id-setup</command> may be used by <para><command>systemd-machine-id-setup</command> may be used by
system installer tools to initialize the machine ID stored in system installer tools to initialize the machine ID stored in
<filename>/etc/machine-id</filename> at install time with a <filename>/etc/machine-id</filename> at install time, with a
randomly generated ID. See provisioned or randomly generated ID. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para> for more information about this file.</para>
<para>This tool will execute no operation if <para>If the tool is invoked without the <option>--commit</option>
<filename>/etc/machine-id</filename> is already switch <filename>/etc/machine-id</filename> is initialized with a
initialized.</para> valid, new machined ID if it is missing or empty. The new machine
ID will be acquired in the following fashion:</para>
<para>If a valid D-Bus machine ID is already configured for the <orderedlist>
system, the D-Bus machine ID is copied and used to initialize the <listitem><para>If a valid D-Bus machine ID is already
machine ID in <filename>/etc/machine-id</filename>.</para> configured for the system, the D-Bus machine ID is copied and
used to initialize the machine ID in
<filename>/etc/machine-id</filename>.</para></listitem>
<para>If run inside a KVM virtual machine and a UUID is passed via <listitem><para>If run inside a KVM virtual machine and a UUID
the <option>-uuid</option> option, this UUID is used to initialize is was configured (via the <option>-uuid</option>
the machine ID instead of a randomly generated one. The caller option), this UUID is used to initialize the machine ID. The
must ensure that the UUID passed is sufficiently unique and is caller must ensure that the UUID passed is sufficiently unique
different for every booted instanced of the VM.</para> and is different for every booted instance of the
VM.</para></listitem>
<para>Similar, if run inside a Linux container environment and a <listitem><para>Similar, if run inside a Linux container
UUID is set for the container this is used to initialize the environment and a UUID is configured for the container this is
machine ID. For details see the documentation of the <ulink used to initialize the machine ID. For details see the
url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface">Container documentation of the <ulink
Interface</ulink>.</para> url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface">Container
Interface</ulink>.</para></listitem>
<listitem><para>Otherwise a new ID is randomly
generated.</para></listitem>
</orderedlist>
<para>The <option>--commit</option> switch may be used to commit a
transient machined ID to disk, making it persistent. For details,
see below.</para>
<para>Use <para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
@ -97,13 +116,41 @@
<para>The following options are understood:</para> <para>The following options are understood:</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term> <term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path as an argument. All <listitem><para>Takes a directory path as argument. All paths
paths will be prefixed with the given alternate operated will be prefixed with the given alternate
<replaceable>root</replaceable> path, including config search <replaceable>root</replaceable> path, including the path for
paths. </para></listitem> <filename>/etc/machine-id</filename> itself.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><option>--commit</option></term>
<listitem><para>Commit a transient machine ID to disk. This
command may be used to convert a transient machine ID into a
persistent one. A transient machine ID file is one that was
bind mounted from a memory file system (usually
<literal>tmpfs</literal>) to
<filename>/etc/machine-id</filename> during the early phase of
the boot process. This may happen because
<filename>/etc</filename> is initially read-only and was
missing a valid machine ID file at that point.</para>
<para>This command will execute no operation if
<filename>/etc/machine-id</filename> is not mounted from a
memory file system, or if <filename>/etc</filename> is
read-only. The command will write the current transient
machine ID to disk and unmount the
<filename>/etc/machine-id</filename> mount point in a
race-free manner to ensure that this file is always valid and
accessible for other processes.</para>
<para>This command is primarily used by the
<citerefentry><refentrytitle>systemd-machine-id-commit.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
early-boot service.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" /> <xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" /> <xi:include href="standard-options.xml" xpointer="version" />
</variablelist> </variablelist>
@ -122,6 +169,7 @@
<para> <para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='dbus'><refentrytitle>dbus-uuidgen</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry project='dbus'><refentrytitle>dbus-uuidgen</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para> </para>

View file

@ -1 +0,0 @@
../Makefile

View file

@ -1,105 +0,0 @@
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
/***
This file is part of systemd.
Copyright 2014 Didier Roche
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
#include <errno.h>
#include <getopt.h>
#include <stdio.h>
#include <stdlib.h>
#include "log.h"
#include "machine-id-setup.h"
#include "util.h"
static const char *arg_root = NULL;
static void help(void) {
printf("%s [OPTIONS...]\n\n"
"Commit a transient /etc/machine-id on disk if writable.\n\n"
" -h --help Show this help\n"
" --version Show package version\n"
" --root=ROOT Filesystem root\n",
program_invocation_short_name);
}
static int parse_argv(int argc, char *argv[]) {
enum {
ARG_VERSION = 0x100,
ARG_ROOT,
};
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, ARG_VERSION },
{ "root", required_argument, NULL, ARG_ROOT },
{}
};
int c;
assert(argc >= 0);
assert(argv);
while ((c = getopt_long(argc, argv, "hqcv", options, NULL)) >= 0)
switch (c) {
case 'h':
help();
return 0;
case ARG_VERSION:
return version();
case ARG_ROOT:
arg_root = optarg;
break;
case '?':
return -EINVAL;
default:
assert_not_reached("Unhandled option");
}
if (optind < argc) {
log_error("Extraneous arguments");
return -EINVAL;
}
return 1;
}
int main(int argc, char *argv[]) {
int r;
log_set_target(LOG_TARGET_AUTO);
log_parse_environment();
log_open();
r = parse_argv(argc, argv);
if (r <= 0)
goto finish;
r = machine_id_commit(arg_root);
finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}

View file

@ -28,15 +28,17 @@
#include "machine-id-setup.h" #include "machine-id-setup.h"
#include "util.h" #include "util.h"
static const char *arg_root = ""; static const char *arg_root = NULL;
static bool arg_commit = false;
static void help(void) { static void help(void) {
printf("%s [OPTIONS...]\n\n" printf("%s [OPTIONS...]\n\n"
"Initialize /etc/machine-id from a random source.\n\n" "Initialize /etc/machine-id from a random source.\n\n"
" -h --help Show this help\n" " -h --help Show this help\n"
" --version Show package version\n" " --version Show package version\n"
" --root=ROOT Filesystem root\n", " --root=ROOT Filesystem root\n"
program_invocation_short_name); " --commit Commit transient ID\n"
, program_invocation_short_name);
} }
static int parse_argv(int argc, char *argv[]) { static int parse_argv(int argc, char *argv[]) {
@ -44,12 +46,14 @@ static int parse_argv(int argc, char *argv[]) {
enum { enum {
ARG_VERSION = 0x100, ARG_VERSION = 0x100,
ARG_ROOT, ARG_ROOT,
ARG_COMMIT,
}; };
static const struct option options[] = { static const struct option options[] = {
{ "help", no_argument, NULL, 'h' }, { "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, ARG_VERSION }, { "version", no_argument, NULL, ARG_VERSION },
{ "root", required_argument, NULL, ARG_ROOT }, { "root", required_argument, NULL, ARG_ROOT },
{ "commit", no_argument, NULL, ARG_COMMIT },
{} {}
}; };
@ -73,6 +77,10 @@ static int parse_argv(int argc, char *argv[]) {
arg_root = optarg; arg_root = optarg;
break; break;
case ARG_COMMIT:
arg_commit = true;
break;
case '?': case '?':
return -EINVAL; return -EINVAL;
@ -98,5 +106,11 @@ int main(int argc, char *argv[]) {
if (r <= 0) if (r <= 0)
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
return machine_id_setup(arg_root) < 0 ? EXIT_FAILURE : EXIT_SUCCESS; if (arg_commit)
r = machine_id_commit(arg_root);
else
r = machine_id_setup(arg_root);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
} }

View file

@ -18,5 +18,5 @@ ConditionPathIsMountPoint=/etc/machine-id
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=@rootlibexecdir@/systemd-machine-id-commit ExecStart=@rootbindir@/systemd-machine-id-setup --commit
TimeoutSec=30s TimeoutSec=30s