X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd-halt.service.xml;h=0737d058d1533085426d97644b7d1bfb07bf08bc;hp=6957fb984e2faf78643d360449c09114748ddb0d;hb=23a7f0f721ff4e3b3fd4ed87f7d8e01ebad20093;hpb=0127336c01198ef210882207d24257cb3752718b diff --git a/man/systemd-halt.service.xml b/man/systemd-halt.service.xml index 6957fb984..0737d058d 100644 --- a/man/systemd-halt.service.xml +++ b/man/systemd-halt.service.xml @@ -48,7 +48,7 @@ systemd-reboot.service systemd-kexec.service systemd-shutdown - systemd System Shutdown Logic + System shutdown logic @@ -74,25 +74,31 @@ kexec.target to execute the respective actions. - When these services are run they ensure that PID + When these services are run, they ensure that PID 1 is replaced by the - /usr/lib/systemd/system-shutdown + /usr/lib/systemd/systemd-shutdown tool which is then responsible for the actual - shutdown. Before shutting down this binary will try to + shutdown. Before shutting down, this binary will try to unmount all remaining file systems, disable all remaining swap devices, detach all remaining storage devices and kill all remaining processes. + 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 filesystem busy, which + then cannot be re-mounted read-only. + Immediately before executing the actual system halt/poweroff/reboot/kexec - system-shutdown will run all + systemd-shutdown will run all executables in /usr/lib/systemd/system-shutdown/ and pass one arguments to them: either - "halt", - "poweroff", - "reboot" or - "kexec", depending on the chosen + halt, + poweroff, + 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. @@ -101,7 +107,7 @@ systemd-halt.service (and the related units) should never be executed directly. Instead, trigger system shutdown with a - command such as "systemctl halt" or + command such as systemctl halt or suchlike.