<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-run-generator">

  <refentryinfo>
    <title>systemd-run-generator</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-run-generator</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-run-generator</refname>
    <refpurpose>Generator for invoking commands specified on the kernel command line as system service</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/usr/lib/systemd/system-generators/systemd-run-generator</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><filename>systemd-run-generator</filename> is a generator
    that reads the kernel command line and understands three
    options:</para>

    <para>If the <option>systemd.run=</option> option is specified and followed by a command line, a unit named
    <filename>kernel-command-line.service</filename> is generated for it and booted into. The service has
    <varname>Type=oneshot</varname> set, and has <varname>SuccessAction=exit</varname> and
    <varname>FailureAction=exit</varname> configured by default, thus ensuring that the system is shut down as soon as
    the command completes. The exit status of the command line is propagated to the invoking container manager, if
    this applies (which might propagate this further, to the calling shell — e.g.
    <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>7</manvolnum></citerefentry> does this). If
    this option is used multiple times the unit file will contain multiple <varname>ExecStart=</varname> lines, to
    execute all commands in order. The command is started as regular service, i.e. with
    <varname>DefaultDependencies=</varname> on. </para>

    <para>Use <option>systemd.run_success_action=</option> and <option>systemd.run_failure_action=</option> to tweak
    how to react to the process completing. In particular assigning <literal>none</literal> will leave the system
    running after the command completes. For further details on supported arguments, see
    <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>

    <para><filename>systemd-run-generator</filename> implements
    <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
  </refsect1>

  <refsect1>
    <title>Example</title>

    <para>Use a command like the following to add a user to the user database inside a container run with
    <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>7</manvolnum></citerefentry>:</para>

    <programlisting># systemd-nspawn -D mycontainer -b systemd.run='"adduser test"'</programlisting>
    <para>(Note the requirement for double quoting in the command line above. The first level of quoting ('') is
    processed and removed by the command shell used to invoke <command>systemd-nspawn</command>. The second level of
    quoting ("") is propagated to the kernel command line of the container and processed and removed by
    <command>systemd-run-generator</command>. Both together make sure both words of the specified command line
    <command>adduser test</command> end up in the generated unit file together and are neither split apart by the
    command shell nor by the generator.)</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
