2012-06-26 19:50:29 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
2019-03-14 16:40:58 +03:00
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
2023-12-25 17:48:33 +03:00
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
2020-11-09 07:23:58 +03:00
<!-- SPDX - License - Identifier: LGPL - 2.1 - or - later -->
2012-06-26 19:50:29 +04:00
2022-12-06 13:27:31 +03:00
<refentry id= "systemd-poweroff.service" >
2012-06-26 19:50:29 +04:00
2015-02-04 05:14:13 +03:00
<refentryinfo >
2022-12-06 13:27:31 +03:00
<title > systemd-poweroff.service</title>
2015-02-04 05:14:13 +03:00
<productname > systemd</productname>
</refentryinfo>
<refmeta >
2022-12-06 13:27:31 +03:00
<refentrytitle > systemd-poweroff.service</refentrytitle>
2015-02-04 05:14:13 +03:00
<manvolnum > 8</manvolnum>
</refmeta>
<refnamediv >
<refname > systemd-poweroff.service</refname>
2022-12-06 13:27:31 +03:00
<refname > systemd-halt.service</refname>
2015-02-04 05:14:13 +03:00
<refname > systemd-reboot.service</refname>
<refname > systemd-kexec.service</refname>
<refname > systemd-shutdown</refname>
<refpurpose > System shutdown logic</refpurpose>
</refnamediv>
<refsynopsisdiv >
<para > <filename > systemd-poweroff.service</filename> </para>
2022-12-06 13:27:31 +03:00
<para > <filename > systemd-halt.service</filename> </para>
2015-02-04 05:14:13 +03:00
<para > <filename > systemd-reboot.service</filename> </para>
<para > <filename > systemd-kexec.service</filename> </para>
2015-06-18 20:47:44 +03:00
<para > <filename > /usr/lib/systemd/systemd-shutdown</filename> </para>
2016-07-16 19:51:45 +03:00
<para > <filename > /usr/lib/systemd/system-shutdown/</filename> </para>
2015-02-04 05:14:13 +03:00
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
2023-04-20 11:03:18 +03:00
<para > <filename > systemd-poweroff.service</filename> is a system service that is pulled in by
<filename > poweroff.target</filename> and is responsible for the actual system power-off
operation. Similarly, <filename > systemd-halt.service</filename> is pulled in by
<filename > halt.target</filename> , <filename > systemd-reboot.service</filename> by
<filename > reboot.target</filename> and <filename > systemd-kexec.service</filename> by
<filename > kexec.target</filename> to execute the respective actions.</para>
2015-02-04 05:14:13 +03:00
2023-04-20 11:03:18 +03:00
<para > When these services are run, they ensure that PID 1 is replaced by the
2024-11-05 15:12:20 +03:00
<filename > /usr/lib/systemd/systemd-shutdown</filename> binary which is then responsible for the actual
2023-04-20 11:03:18 +03:00
shutdown. Before shutting down, this binary will try to unmount all remaining file systems (or at least
remount them read-only), disable all remaining swap devices, detach all remaining storage devices and
kill all remaining processes.</para>
2015-02-04 05:14:13 +03:00
2023-04-20 11:03:18 +03:00
<para > It is necessary to have this code in a separate binary because otherwise rebooting after an upgrade
might be broken — the running PID 1 could still depend on libraries which are not available any more,
thus keeping the file system busy, which then cannot be re-mounted read-only.</para>
2015-02-04 05:14:13 +03:00
2024-11-23 16:07:56 +03:00
<para > Shortly before executing the actual system power-off/halt/reboot/kexec,
2023-04-20 11:03:18 +03:00
<filename > systemd-shutdown</filename> will run all executables in
<filename > /usr/lib/systemd/system-shutdown/</filename> and pass one arguments to them: either
<literal > poweroff</literal> , <literal > halt</literal> , <literal > reboot</literal> , or
<literal > kexec</literal> , depending on the chosen action. All executables in this directory are executed
2024-11-05 15:12:20 +03:00
in parallel, and execution of the action is not continued before all executables finished. (A safety
timeout of 90s is applied however.) Note that these executables are run <emphasis > after</emphasis> all
services have been shut down, and after most mounts have been unmounted (the root file system as well as
<filename > /run/</filename> and various API file systems are still around though). This means any programs
dropped into this directory must be prepared to run in such a limited execution environment and not rely
on external services or hierarchies such as <filename > /var/</filename> to be around (or writable).</para>
2015-02-04 05:14:13 +03:00
2022-12-06 13:27:31 +03:00
<para > Note that <filename > systemd-poweroff.service</filename> (and the related units) should never be
2022-12-06 13:16:57 +03:00
executed directly. Instead, trigger system shutdown with a command such as <literal > systemctl
2022-12-06 13:27:31 +03:00
poweroff</literal> .</para>
2023-05-03 11:33:01 +03:00
<para > Another form of shutdown is provided by the
<citerefentry > <refentrytitle > systemd-soft-reboot.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry>
functionality. It reboots only the OS userspace, leaving the kernel, firmware, and hardware as it is.</para>
2015-02-04 05:14:13 +03:00
</refsect1>
<refsect1 >
<title > See Also</title>
2023-12-22 21:09:32 +03:00
<para > <simplelist type= "inline" >
<member > <citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemctl</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemd.special</refentrytitle> <manvolnum > 7</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > reboot</refentrytitle> <manvolnum > 2</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemd-suspend.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemd-soft-reboot.service</refentrytitle> <manvolnum > 8</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > bootup</refentrytitle> <manvolnum > 7</manvolnum> </citerefentry> </member>
</simplelist> </para>
2015-02-04 05:14:13 +03:00
</refsect1>
2012-06-26 19:50:29 +04:00
</refentry>