systemd/man/shutdown.xml
anarcat 9aafd310cc man/shutdown: document how to switch to single-user mode
Before Debian switched to systemd, `shutdown now` would reset the system into
single user mode, doing roughly the equivalent of `telinit 1`.

Now, systemd's `shutdown` command does not behave that way; it defaults to
`poweroff` which might be confusing for users (like me) used to the previous
method.

Because I don't use the command often, I keep being stumped by this behavior,
and every time I look at the `shutdown(1)` manpage, I don't understand why I
can't find what I am looking for. This patch should make sure that people like
me find their way back to some sort of reason.

Maybe the *proper* way to fix this would be to restore the more classic
behavior, but I'm definitely not going to climb that hill. Besides, I clearly
remember the time I found out about the `shutdown` command and was *really*
confused when it brought me back to a command-line prompt. That was really
counter-intuitive and I find that change to actually be a good thing. So I'm
not proposing to change this behavior, merely document it better.

I originally added this to the `-P` option but it was suggested adding a new
`COMPATIBILITY` section instead, where other such issues could be added.

The `COMPATIBILITY` section is not actually officially documented. `man(1)`
talks about a `CONFORMING TO` section, but `shutdown(1)` is not
POSIX (`shutdown(2)` is, of course), so there's no actual standard on how this
should work.

The other option I considered was to add a `BUGS` section, but that seemed to
inflammatory, and definitely counter-productive.
2022-10-07 17:54:31 +02:00

156 lines
5.1 KiB
XML

<?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="shutdown"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>shutdown</title>
<productname>systemd</productname>
</refentryinfo>
<refmeta>
<refentrytitle>shutdown</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>shutdown</refname>
<refpurpose>Halt, power off or reboot the machine</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>shutdown</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt">TIME</arg>
<arg choice="opt" rep="repeat">WALL</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>shutdown</command> may be used to halt, power off, or reboot the machine.</para>
<para>The first argument may be a time string (which is usually
<literal>now</literal>). Optionally, this may be followed by a
wall message to be sent to all logged-in users before going
down.</para>
<para>The time string may either be in the format
<literal>hh:mm</literal> for hour/minutes specifying the time to
execute the shutdown at, specified in 24h clock format.
Alternatively it may be in the syntax <literal>+m</literal>
referring to the specified number of minutes m from now.
<literal>now</literal> is an alias for <literal>+0</literal>, i.e.
for triggering an immediate shutdown. If no time argument is
specified, <literal>+1</literal> is implied.</para>
<para>Note that to specify a wall message you must specify a time
argument, too.</para>
<para>If the time argument is used, 5 minutes before the system
goes down the <filename>/run/nologin</filename> file is created to
ensure that further logins shall not be allowed.</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>-H</option></term>
<term><option>--halt</option></term>
<listitem><para>Halt the machine.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-P</option></term>
<term><option>--poweroff</option></term>
<listitem><para>Power the machine off (the default).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<term><option>--reboot</option></term>
<listitem><para>Reboot the machine.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>The same as <option>--poweroff</option>, but does not override the action to take if
it is "halt". E.g. <command>shutdown --reboot -h</command> means "poweroff", but <command>shutdown
--halt -h</command> means "halt".</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-k</option></term>
<listitem><para>Do not halt, power off, or reboot, but just write the wall message.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-wall</option></term>
<listitem><para>Do not send wall message before halt, power off, or reboot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Cancel a pending shutdown. This may be used to cancel the effect of an invocation of
<command>shutdown</command> with a time argument that is not <literal>+0</literal> or
<literal>now</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--show</option></term>
<listitem><para>Show a pending shutdown action and time if
there is any.</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>Compatibility</title>
<para>The <command> shutdown</command> command in previous init systems (including sysvinit) defaulted to
single-user mode instead of powering off the machine. To change into single-user mode, use
<command>systemctl rescue</command> instead.</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><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>