On Mo, 08.08.22 12:24, Patrick Schleizer (patrick-mailinglists@xxxxxxxxxx) 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 I presume you mean /usr/lib/systemd/systemd-shutdown? (i.e. there's a *d* in the file name; and the path outside of /usr/ is only done by legacy distros, who still stick to spit /usr/ setups, which we do not support anymore) > 3. /lib/systemd/system-shutdown executes /run/initramfs/shutdown (which > is dracut) systemd-shutdown runs as PID 1 at this time, and it then chain loads /run/initramfs/shutdown also as PID1 – if it exists. Thus, at that moment no systemd code runs anymore, dracut is the only userspace code remaining. > 4. dracut shutdown.sh performs various cleanup tasks (such as kill all > remaining processes and unmount root disk) It should have been systemd-shutdown between steps 2 and 3 above which should have already killed everything. But yeah, dracut is supposed to detach the root fs. > 5. /lib/systemd/system-shutdown runs scripts in the > /usr/lib/systemd/system-shutdown/ folder This is actually done before step 3 above. > 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. Nah, the killing of processes it already did between steps 2 and 3. Also, as mentioned systemd-shutdown doesn't run at this time anymore. Lennart -- Lennart Poettering, Berlin