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

  <refentryinfo>
    <title>runlevel</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>runlevel</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>runlevel</refname>
    <refpurpose>Print previous and current SysV runlevel</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>runlevel</command>
      <arg choice="opt" rep="repeat">options</arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Overview</title>

    <para>"Runlevels" are an obsolete way to start and stop groups of
    services used in SysV init. systemd provides a compatibility layer
    that maps runlevels to targets, and associated binaries like
    <command>runlevel</command>. Nevertheless, only one runlevel can
    be "active" at a given time, while systemd can activate multiple
    targets concurrently, so the mapping to runlevels is confusing
    and only approximate. Runlevels should not be used in new code,
    and are mostly useful as a shorthand way to refer the matching
    systemd targets in kernel boot parameters.</para>

    <table>
      <title>Mapping between runlevels and systemd targets</title>
      <tgroup cols='2' align='left' colsep='1' rowsep='1'>
        <colspec colname="runlevel" />
        <colspec colname="target" />
        <thead>
          <row>
            <entry>Runlevel</entry>
            <entry>Target</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>0</entry>
            <entry><filename>poweroff.target</filename></entry>
          </row>
          <row>
            <entry>1</entry>
            <entry><filename>rescue.target</filename></entry>
          </row>
          <row>
            <entry>2, 3, 4</entry>
            <entry><filename>multi-user.target</filename></entry>
          </row>
          <row>
            <entry>5</entry>
            <entry><filename>graphical.target</filename></entry>
          </row>
          <row>
            <entry>6</entry>
            <entry><filename>reboot.target</filename></entry>
          </row>
        </tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para><command>runlevel</command> prints the previous and current
    SysV runlevel if they are known.</para>

    <para>The two runlevel characters are separated by a single space
    character. If a runlevel cannot be determined, N is printed
    instead. If neither can be determined, the word "unknown" is
    printed.</para>

    <para>Unless overridden in the environment, this will check the
    utmp database for recent runlevel changes.</para>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following option is understood:</para>

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

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

  </refsect1>

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

    <para>If one or both runlevels could be determined, 0 is returned,
    a non-zero failure code otherwise.</para>

  </refsect1>

  <refsect1>
    <title>Environment</title>

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

        <listitem><para>If <varname>$RUNLEVEL</varname> is set,
        <command>runlevel</command> will print this value as current
        runlevel and ignore utmp.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>$PREVLEVEL</varname></term>

        <listitem><para>If <varname>$PREVLEVEL</varname> is set,
        <command>runlevel</command> will print this value as previous
        runlevel and ignore utmp.</para></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Files</title>

    <variablelist>
      <varlistentry>
        <term><filename>/run/utmp</filename></term>

        <listitem><para>The utmp database <command>runlevel</command> reads the previous and current runlevel
        from.</para></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    </para>
  </refsect1>
</refentry>
