<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-debug-generator">

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

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

  <refnamediv>
    <refname>systemd-debug-generator</refname>
    <refpurpose>Generator for enabling a runtime debug shell and
    masking specific units at boot</refpurpose>
  </refnamediv>

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

  <refsect1>
    <title>Description</title>

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

    <para>If the <option>systemd.mask=</option> or <option>rd.systemd.mask=</option>
    option is specified and followed by a unit name, this unit is
    masked for the runtime (i.e. for this session — from boot to shutdown), similarly to the effect of
    <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
    <command>mask</command> command. This is useful to boot with
    certain units removed from the initial boot transaction for
    debugging system startup. May be specified more than once.
    <option>rd.systemd.mask=</option> is honored only by initial
    RAM disk (initrd) while <option>systemd.mask=</option> is
    honored only in the main system.</para>

    <para>If the <option>systemd.wants=</option> or
    <option>rd.systemd.wants=</option> option is specified
    and followed by a unit name, a start job for this unit is added to
    the initial transaction. This is useful to start one or more
    additional units at boot. May be specified more than once.
    <option>rd.systemd.wants=</option> is honored only by initial
    RAM disk (initrd) while <option>systemd.wants=</option> is
    honored only in the main system.</para>

    <para>If the <option>systemd.debug_shell</option> or
    <option>rd.systemd.debug_shell</option> option is
    specified, the debug shell service
    <literal>debug-shell.service</literal> is pulled into the boot
    transaction and a debug shell will be spawned during early boot.
    By default, <filename>&DEBUGTTY;</filename> is used, but a specific tty can also be set,
    either with or without the <filename>/dev/</filename> prefix.
    Note that the shell may also be turned on persistently by enabling it with
    <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
    <command>enable</command> command.
    <option>rd.systemd.debug_shell=</option> is honored only by initial
    RAM disk (initrd) while <option>systemd.debug_shell</option> is
    honored only in the main system.</para>

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

  <refsect1>
    <title>See Also</title>
    <para><simplelist type="inline">
      <member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>

</refentry>
