]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
machine-id-commit: merge machine-id-commit functionality into machine-id-setup
authorLennart Poettering <lennart@poettering.net>
Wed, 23 Sep 2015 17:36:21 +0000 (19:36 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 29 Sep 2015 19:55:51 +0000 (21:55 +0200)
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.

.gitignore
Makefile-man.am
Makefile.am
man/machine-id.xml
man/systemd-machine-id-commit.service.xml
man/systemd-machine-id-commit.xml [deleted file]
man/systemd-machine-id-setup.xml
src/machine-id-commit/Makefile [deleted symlink]
src/machine-id-commit/machine-id-commit.c [deleted file]
src/machine-id-setup/machine-id-setup-main.c
units/systemd-machine-id-commit.service.in

index 605d109dfa8c66124a61090dfae784535fb6578f..6149b01c6cbee7ee366f78b57379c338c4073df4 100644 (file)
@@ -96,7 +96,6 @@
 /systemd-kmsg-syslogd
 /systemd-localed
 /systemd-logind
-/systemd-machine-id-commit
 /systemd-machine-id-setup
 /systemd-machined
 /systemd-modules-load
index 7dd014116f22f6814a3e11e8759529dc41176c49..49586fe04ca6925885d4420316343cd5dc26b634 100644 (file)
@@ -102,7 +102,6 @@ MANPAGES += \
        man/systemd-inhibit.1 \
        man/systemd-initctl.service.8 \
        man/systemd-journald.service.8 \
-       man/systemd-machine-id-commit.1 \
        man/systemd-machine-id-commit.service.8 \
        man/systemd-machine-id-setup.1 \
        man/systemd-notify.1 \
@@ -2351,7 +2350,6 @@ EXTRA_DIST += \
        man/systemd-localed.service.xml \
        man/systemd-logind.service.xml \
        man/systemd-machine-id-commit.service.xml \
-       man/systemd-machine-id-commit.xml \
        man/systemd-machine-id-setup.xml \
        man/systemd-machined.service.xml \
        man/systemd-modules-load.service.xml \
index e9ad72333b2fc7b324d09dc598ba4ba733993c95..6ddc0b74f3d669f1a321a9504d73747afad575b9 100644 (file)
@@ -397,7 +397,6 @@ rootlibexec_PROGRAMS = \
        systemd-remount-fs \
        systemd-reply-password \
        systemd-fsck \
-       systemd-machine-id-commit \
        systemd-ac-power \
        systemd-sysctl \
        systemd-sleep \
@@ -2331,6 +2330,9 @@ systemd_machine_id_setup_SOURCES = \
 systemd_machine_id_setup_LDADD = \
        libshared.la
 
+SYSINIT_TARGET_WANTS += \
+       systemd-machine-id-commit.service
+
 # ------------------------------------------------------------------------------
 systemd_sysctl_SOURCES = \
        src/sysctl/sysctl.c
@@ -2352,18 +2354,6 @@ systemd_fsck_SOURCES = \
 systemd_fsck_LDADD = \
        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 = \
        src/ac-power/ac-power.c
index 92d67a3869ac27438ebfd856f4c7b163238d989f..8ce9c46ff12e586a50123e25a44216f35e6f8ac4 100644 (file)
@@ -63,7 +63,7 @@
     <para>The machine ID is usually generated from a random source
     during system installation and stays constant for all subsequent
     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
     or when hardware is replaced.</para>
index 7c8fc0874e767ea3a030fd449f07ed904aa22646..10f36b3008f230f8b27fba27d3b8067ac29b231b 100644 (file)
 
   <refnamediv>
     <refname>systemd-machine-id-commit.service</refname>
-    <refpurpose>Commit transient machine-id to disk</refpurpose>
+    <refpurpose>Commit transient machine-id to disk</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
     <para><filename>systemd-machine-id-commit.service</filename></para>
-    <para><filename>/usr/lib/systemd/systemd-machine-id-commit</filename></para>
   </refsynopsisdiv>
 
   <refsect1>
     <title>Description</title>
 
-    <para><filename>systemd-machine-id-commit.service</filename> is a
-    service responsible for committing any transient
-    <filename>/etc/machine-id</filename> file to a writable file
+    <para><filename>systemd-machine-id-commit.service</filename> is an
+    early-boot service responsible for committing transient
+    <filename>/etc/machine-id</filename> files to a writable disk file
     system. See
     <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-    for more information about this file.</para>
-
-    <para>This service is started shortly after
-    <filename>local-fs.target</filename> if
-    <filename>/etc/machine-id</filename> is an independent mount point
-    (probably a tmpfs one) and /etc is writable.
-    <command>systemd-machine-id-commit</command> will then write
-    current machine ID to disk and unmount the transient
+    for more information about machine IDs.</para>
+
+    <para>This service is started after
+    <filename>local-fs.target</filename> in case
+    <filename>/etc/machine-id</filename> is a mount point of its own
+    (usually from a memory file system such as
+    <literal>tmpfs</literal>) and /etc is writable. The service will
+    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
-    ensure that 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. The main use case for that service is
-    <filename>/etc/machine-id</filename> being an empty file at boot
-    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>
+    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>The main use case of this service are systems where
+    <filename>/etc/machine-id</filename> is read-only and initially
+    not initialized. In this case the system manager will generate a
+    transient machine ID file on a memory file system, and mount it
+    over <filename>/etc/machine-id</filename>, during the early boot
+    phase. This service is then invoked in a later boot phase, as soon
+    as <filename>/etc</filename> has been remounted writable and the
+    ID may thus be committed to disk to make it permanent.</para>
   </refsect1>
 
   <refsect1>
     <title>See Also</title>
     <para>
       <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>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
diff --git a/man/systemd-machine-id-commit.xml b/man/systemd-machine-id-commit.xml
deleted file mode 100644 (file)
index d216aa0..0000000
+++ /dev/null
@@ -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>
index 182717f5242e686ea4c222ba83d4ef82a5eedf25..efcf408332cf9de34bf563bef166b375a804b6f5 100644 (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"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
         <surname>Poettering</surname>
         <email>lennart@poettering.net</email>
       </author>
+      <author>
+        <contrib>Developer</contrib>
+        <firstname>Didier</firstname>
+        <surname>Roche</surname>
+        <email>didrocks@ubuntu.com</email>
+      </author>
     </authorgroup>
   </refentryinfo>
 
 
     <para><command>systemd-machine-id-setup</command> may be used by
     system installer tools to initialize the machine ID stored in
-    <filename>/etc/machine-id</filename> at install time with a
-    randomly generated ID. See
+    <filename>/etc/machine-id</filename> at install time, with a
+    provisioned or randomly generated ID. 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> is already
-    initialized.</para>
-
-    <para>If a valid D-Bus machine ID is already 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>
-
-    <para>If run inside a KVM virtual machine and a UUID is passed via
-    the <option>-uuid</option> option, this UUID is used to initialize
-    the machine ID instead of a randomly generated one. The caller
-    must ensure that the UUID passed is sufficiently unique and is
-    different for every booted instanced of the VM.</para>
-
-    <para>Similar, if run inside a Linux container environment and a
-    UUID is set for the container this is used to initialize the
-    machine ID. For details see the documentation of the <ulink
-    url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface">Container
-    Interface</ulink>.</para>
+    <para>If the tool is invoked without the <option>--commit</option>
+    switch <filename>/etc/machine-id</filename> is initialized with a
+    valid, new machined ID if it is missing or empty. The new machine
+    ID will be acquired in the following fashion:</para>
+
+    <orderedlist>
+      <listitem><para>If a valid D-Bus machine ID is already
+      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>
+
+      <listitem><para>If run inside a KVM virtual machine and a UUID
+      is was configured (via the <option>-uuid</option>
+      option), this UUID is used to initialize the machine ID. The
+      caller must ensure that the UUID passed is sufficiently unique
+      and is different for every booted instance of the
+      VM.</para></listitem>
+
+      <listitem><para>Similar, if run inside a Linux container
+      environment and a UUID is configured for the container this is
+      used to initialize the machine ID. For details see the
+      documentation of the <ulink
+      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
     <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
     <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>
+        <listitem><para>Takes a directory path as argument. All paths
+        operated will be prefixed with the given alternate
+        <replaceable>root</replaceable> path, including the path for
+        <filename>/etc/machine-id</filename> itself.</para></listitem>
       </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="version" />
     </variablelist>
     <para>
       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</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><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
     </para>
diff --git a/src/machine-id-commit/Makefile b/src/machine-id-commit/Makefile
deleted file mode 120000 (symlink)
index d0b0e8e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile
\ No newline at end of file
diff --git a/src/machine-id-commit/machine-id-commit.c b/src/machine-id-commit/machine-id-commit.c
deleted file mode 100644 (file)
index ec3d7f8..0000000
+++ /dev/null
@@ -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;
-}
index e5606c9a0360728a074ccbd4253f9fd99e4b5684..a9c4e3fadfc226554d259b560bf72b979a6d9f71 100644 (file)
 #include "machine-id-setup.h"
 #include "util.h"
 
-static const char *arg_root = "";
+static const char *arg_root = NULL;
+static bool arg_commit = false;
 
 static void help(void) {
         printf("%s [OPTIONS...]\n\n"
                "Initialize /etc/machine-id from a random source.\n\n"
                "  -h --help             Show this help\n"
                "     --version          Show package version\n"
-               "     --root=ROOT        Filesystem root\n",
-               program_invocation_short_name);
+               "     --root=ROOT        Filesystem root\n"
+               "     --commit           Commit transient ID\n"
+               , program_invocation_short_name);
 }
 
 static int parse_argv(int argc, char *argv[]) {
@@ -44,12 +46,14 @@ static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
                 ARG_ROOT,
+                ARG_COMMIT,
         };
 
         static const struct option options[] = {
                 { "help",      no_argument,       NULL, 'h'           },
                 { "version",   no_argument,       NULL, ARG_VERSION   },
                 { "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;
                         break;
 
+                case ARG_COMMIT:
+                        arg_commit = true;
+                        break;
+
                 case '?':
                         return -EINVAL;
 
@@ -98,5 +106,11 @@ int main(int argc, char *argv[]) {
         if (r <= 0)
                 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;
 }
index cccbf7b626f0618664b7174775d9924f5a2470e2..1f3f5da0f3392268c5f3fce93abe06214665aa72 100644 (file)
@@ -18,5 +18,5 @@ ConditionPathIsMountPoint=/etc/machine-id
 [Service]
 Type=oneshot
 RemainAfterExit=yes
-ExecStart=@rootlibexecdir@/systemd-machine-id-commit
+ExecStart=@rootbindir@/systemd-machine-id-setup --commit
 TimeoutSec=30s