<?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">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-getty-generator" xmlns:xi="http://www.w3.org/2001/XInclude">

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

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

  <refnamediv>
    <refname>systemd-getty-generator</refname>
    <refpurpose>Generator for enabling getty instances on the
    console</refpurpose>
  </refnamediv>

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

  <refsect1>
    <title>Description</title>

    <para><filename>systemd-getty-generator</filename> is a generator that automatically instantiates
    <filename>serial-getty@.service</filename> on the kernel consoles, if they can function as ttys and are
    not provided by the virtual console subsystem. It will also instantiate
    <filename>serial-getty@.service</filename> instances for virtualizer consoles, if execution in a
    virtualized environment is detected. If execution in a container environment is detected, it will instead
    enable <filename>console-getty.service</filename> for <filename>/dev/console</filename>, and
    <filename>container-getty@.service</filename> instances for additional container pseudo TTYs as requested
    by the container manager (see <ulink url="https://systemd.io/CONTAINER_INTERFACE"><filename>Container
    Interface</filename></ulink>). This should ensure that the user is shown a login prompt at the right
    place, regardless of which environment the system is started in. For example, it is sufficient to
    redirect the kernel console with a kernel command line argument such as <varname>console=</varname> to
    get both kernel messages and a getty prompt on a serial TTY. See <ulink
    url="https://docs.kernel.org/admin-guide/kernel-parameters.html">The kernel's command-line
    parameters</ulink> for more information on the <varname>console=</varname> kernel parameter.</para>

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

    <para>Further information about configuration of gettys can be
    found in
    <ulink url="https://0pointer.de/blog/projects/serial-console.html">systemd
    for Administrators, Part XVI: Gettys on Serial Consoles (and
    Elsewhere)</ulink>.</para>
  </refsect1>

  <refsect1>
    <title>Kernel Command Line</title>

    <para><filename>systemd-getty-generator</filename> understands the following
    <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    parameters:</para>

    <variablelist class='kernel-commandline-options'>
      <varlistentry>
        <term><varname>systemd.getty_auto=</varname></term>

        <listitem><para>this options take an optional boolean argument, and default to yes.
        The generator is enabled by default, and a false value may be used to disable it.
        </para>

        <xi:include href="version-info.xml" xpointer="v250"/></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Environment</title>

    <variablelist class='environment-variables'>
      <varlistentry>
        <term><varname>$SYSTEMD_GETTY_AUTO</varname></term>

        <listitem><para>This variable takes an optional boolean argument, and default to yes.
        The generator is enabled by default, and a false value may be used to disable it.
        </para>

        <xi:include href="version-info.xml" xpointer="v250"/></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>System Credentials</title>

    <variablelist class='system-credentials'>
      <varlistentry>
        <term><varname>getty.ttys.serial</varname></term>
        <term><varname>getty.ttys.container</varname></term>

        <listitem><para>These system credentials may be used to spawn additional login prompts on selected
        TTYs. The two credentials should contain a newline-separated list of TTY names to spawn instances of
        <filename>serial-getty@.service</filename> (in case of <varname>getty.ttys.serial</varname>) and
        <filename>container-getty@.service</filename> (in case of <varname>getty.ttys.container</varname>)
        on.</para>

        <xi:include href="version-info.xml" xpointer="v254"/></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para><simplelist type="inline">
      <member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.system-credentials</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
      <member><citerefentry project='man-pages'><refentrytitle>agetty</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>

</refentry>