<?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="telinit" conditional='HAVE_SYSV_COMPAT'
    xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>telinit</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>telinit</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>telinit</refname>
    <refpurpose>Change SysV runlevel</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>telinit <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="req">COMMAND</arg></command>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><command>telinit</command> may be used to change the SysV
    system runlevel. Since the concept of SysV runlevels is obsolete
    the runlevel requests will be transparently translated into
    systemd unit activation requests.</para>

  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following options are understood:</para>

    <variablelist>
      <varlistentry>
        <term><option>--help</option></term>

        <xi:include href="standard-options.xml" xpointer="help-text" />
      </varlistentry>

      <varlistentry>
        <term><option>--no-wall</option></term>

        <listitem><para>Do not send wall message before
        reboot/halt/power-off.</para></listitem>
      </varlistentry>
    </variablelist>

    <para>The following commands are understood:</para>

    <variablelist>
      <varlistentry>
        <term><command>0</command></term>

        <listitem><para>Power-off the machine. This is translated into
        an activation request for <filename>poweroff.target</filename>
        and is equivalent to <command>systemctl
        poweroff</command>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><command>6</command></term>

        <listitem><para>Reboot the machine. This is translated into an
        activation request for <filename>reboot.target</filename> and
        is equivalent to <command>systemctl
        reboot</command>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><command>2</command></term>
        <term><command>3</command></term>
        <term><command>4</command></term>
        <term><command>5</command></term>

        <listitem><para>Change the SysV runlevel. This is translated
        into an activation request for
        <filename>runlevel2.target</filename>,
        <filename>runlevel3.target</filename>, … and is equivalent
        to <command>systemctl isolate runlevel2.target</command>,
        <command>systemctl isolate runlevel3.target</command>,
        …</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><command>1</command></term>
        <term><command>s</command></term>
        <term><command>S</command></term>

        <listitem><para>Change into system rescue mode. This is
        translated into an activation request for
        <filename>rescue.target</filename> and is equivalent to
        <command>systemctl rescue</command>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><command>q</command></term>
        <term><command>Q</command></term>

        <listitem><para>Reload daemon configuration. This is
        equivalent to <command>systemctl
        daemon-reload</command>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><command>u</command></term>
        <term><command>U</command></term>

        <listitem><para>Serialize state, reexecute daemon and
        deserialize state again. This is equivalent to
        <command>systemctl daemon-reexec</command>.</para></listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>Exit status</title>

    <para>On success, 0 is returned, a non-zero failure
    code otherwise.</para>
  </refsect1>

  <refsect1>
    <title>Notes</title>

    <para>This is a legacy command available for compatibility only.
    It should not be used anymore, as the concept of runlevels is
    obsolete.</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 project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    </para>
  </refsect1>
</refentry>
