1<?xml version="1.0"?>
2<!--*-nxml-*-->
3<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
4  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
5<!ENTITY % entities SYSTEM "custom-entities.ent" >
6%entities;
7]>
8<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
9<refentry id="systemd-debug-generator">
10
11  <refentryinfo>
12    <title>systemd-debug-generator</title>
13    <productname>systemd</productname>
14  </refentryinfo>
15
16  <refmeta>
17    <refentrytitle>systemd-debug-generator</refentrytitle>
18    <manvolnum>8</manvolnum>
19  </refmeta>
20
21  <refnamediv>
22    <refname>systemd-debug-generator</refname>
23    <refpurpose>Generator for enabling a runtime debug shell and
24    masking specific units at boot</refpurpose>
25  </refnamediv>
26
27  <refsynopsisdiv>
28    <para><filename>/usr/lib/systemd/system-generators/systemd-debug-generator</filename></para>
29  </refsynopsisdiv>
30
31  <refsect1>
32    <title>Description</title>
33
34    <para><filename>systemd-debug-generator</filename> is a generator
35    that reads the kernel command line and understands three
36    options:</para>
37
38    <para>If the <option>systemd.mask=</option> or <option>rd.systemd.mask=</option>
39    option is specified and followed by a unit name, this unit is
40    masked for the runtime (i.e. for this session - from boot to shutdown), similar to the effect of
41    <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
42    <command>mask</command> command. This is useful to boot with
43    certain units removed from the initial boot transaction for
44    debugging system startup. May be specified more than once.
45    <option>rd.systemd.mask=</option> is honored only by initial
46    RAM disk (initrd) while <option>systemd.mask=</option> is
47    honored only in the main system.</para>
48
49    <para>If the <option>systemd.wants=</option> or
50    <option>rd.systemd.wants=</option> option is specified
51    and followed by a unit name, a start job for this unit is added to
52    the initial transaction. This is useful to start one or more
53    additional units at boot. May be specified more than once.
54    <option>rd.systemd.wants=</option> is honored only by initial
55    RAM disk (initrd) while <option>systemd.wants=</option> is
56    honored only in the main system.</para>
57
58    <para>If the <option>systemd.debug_shell</option> or
59    <option>rd.systemd.debug_shell</option> option is
60    specified, the debug shell service
61    <literal>debug-shell.service</literal> is pulled into the boot
62    transaction and a debug shell will be spawned during early boot.
63    By default, <filename>&DEBUGTTY;</filename> is used, but a specific tty can also be set,
64    either with or without the <filename>/dev/</filename> prefix.
65    Note that the shell may also be turned on persistently by enabling it with
66    <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
67    <command>enable</command> command.
68    <option>rd.systemd.debug_shell=</option> is honored only by initial
69    RAM disk (initrd) while <option>systemd.debug_shell</option> is
70    honored only in the main system.</para>
71
72    <para><filename>systemd-debug-generator</filename> implements
73    <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
74  </refsect1>
75
76  <refsect1>
77    <title>See Also</title>
78    <para>
79      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
80      <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
81      <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
82    </para>
83  </refsect1>
84
85</refentry>
86