'\" t .TH "SYSTEMD\-POWEROFF\&.SERVICE" "8" "" "systemd 256.8" "systemd-poweroff.service" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" systemd-poweroff.service, systemd-halt.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown \- System shutdown logic .SH "SYNOPSIS" .PP systemd\-poweroff\&.service .PP systemd\-halt\&.service .PP systemd\-reboot\&.service .PP systemd\-kexec\&.service .PP /usr/lib/systemd/systemd\-shutdown .PP /usr/lib/systemd/system\-shutdown/ .SH "DESCRIPTION" .PP systemd\-poweroff\&.service is a system service that is pulled in by poweroff\&.target and is responsible for the actual system power\-off operation\&. Similarly, systemd\-halt\&.service is pulled in by halt\&.target, systemd\-reboot\&.service by reboot\&.target and systemd\-kexec\&.service by kexec\&.target to execute the respective actions\&. .PP When these services are run, they ensure that PID 1 is replaced by the /usr/lib/systemd/systemd\-shutdown binary which is then responsible for the actual 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\&. .PP It is necessary to have this code in a separate binary because otherwise rebooting after an upgrade might be broken\ \&\(em 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\&. .PP Shortly before executing the actual system power\-off/halt/reboot/kexec, systemd\-shutdown will run all executables in /usr/lib/systemd/system\-shutdown/ and pass one arguments to them: either "poweroff", "halt", "reboot", or "kexec", depending on the chosen action\&. All executables in this directory are executed 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 \fIafter\fR all services have been shut down, and after most mounts have been unmounted (the root file system as well as /run/ 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 /var/ to be around (or writable)\&. .PP Note that systemd\-poweroff\&.service (and the related units) should never be executed directly\&. Instead, trigger system shutdown with a command such as "systemctl poweroff"\&. .PP Another form of shutdown is provided by the \fBsystemd-soft-reboot.service\fR(8) functionality\&. It reboots only the OS userspace, leaving the kernel, firmware, and hardware as it is\&. .SH "SEE ALSO" .PP \fBsystemd\fR(1), \fBsystemctl\fR(1), \fBsystemd.special\fR(7), \fBreboot\fR(2), \fBsystemd-suspend.service\fR(8), \fBsystemd-soft-reboot.service\fR(8), \fBbootup\fR(7)