Wires up the systemd-shutdown side of the kexec-via-LUO fd store preservation. When rebooting via kexec, systemd builds a JSON description of the fd stores of all loaded services and passes it to systemd-shutdown through the SYSTEMD_LUO_SERIALIZE_FD environment variable. The FDs themselves come in as part of the normal shutdown FDSet. systemd-shutdown's job is then, at the very last moment before invoking the kexec syscall, to move that state into a kernel LUO session so it survives the reboot. Doing the LUO session creation here, rather than in PID 1, is deliberate: * It's the last point where we can be sure all other processes have already been killed, so nothing else can race us into creating (or worse, hijacking) the "systemd" session, as /dev/liveupdate is a singleton and a session name is global. * Any kernel-visible side effects of preserving objects (memory pinning etc.) are delayed until the absolute last moment, minimizing the window in which they could affect the running system No behaviour change for shutdown paths other than kexec, or for kexec when systemd didn't hand over a serialization fd (e.g. because no service had any fds stored, or because LUO wasn't supported at serialization time).
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
