On 08.08.2022 15:24, Patrick Schleizer wrote: > Hi! > > This is what I think but please correct me if I am wrong. > > 1. systemd runs systemd units for systemd shutdown.target > > 2. /lib/systemd/system-shutdown (shutdown.c) runs > > 3. /lib/systemd/system-shutdown executes /run/initramfs/shutdown (which > is dracut) > > 4. dracut shutdown.sh performs various cleanup tasks (such as kill all > remaining processes and unmount root disk) > > 5. /lib/systemd/system-shutdown runs scripts in the > /usr/lib/systemd/system-shutdown/ folder > > 6. /lib/systemd/system-shutdown performs further cleanup (similar to > dracut, probably some functionality duplicated with dracut, includes > kill all remaining processes, unmount the root risk) and eventually > halt/reboot/poweroff/kexec. > No. The sequence is 1, 2, 5, 6 (up to halt/reboot/poweroff/kexec). Then if /run/initramfs/shutdown is present, systemd-shutdown executes it. What happens later is completely outside of systemd scope, there is no return. If this fails or /run/initramfs/shutdown is not present, systemd-shutdown calls kernel to actually perform halt/reboot/poweroff/kexec. Dracut shutdown script attempts to unmount remaining filesystems and calls kernel.