summaryrefslogtreecommitdiff
path: root/units/initrd-switch-root.service.in
AgeCommit message (Collapse)Author
2016-11-24core: make sure initrd-switch-root command survives PID1's killing spree (#4730)Franck Bui
This is a different way to implement the fix proposed by commit a4021390fef27f4136497328f suggested by Lennart Poettering. In this patch we instruct PID1 to not kill "systemctl switch-root" command started by initrd-switch-root service using the "argv[0][0]='@'" trick. See: https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/ for more details. We had to backup argv[0] because argv is modified by dispatch_verb().
2016-11-23core: consider SIGTERM as a clean exit status for initrd-switch-root.service ↵Franck Bui
(#4713) Since commit 1f0958f640b8717, systemd considers SIGTERM for short-running services (aka Type=oneshot) as a failure. This can be an issue with initrd-switch-root.service as the command run by this service (in order to switch to the new rootfs) may still be running when systemd does the switch. However PID1 sends SIGTERM to all remaining processes right before switching and initrd-switch-root.service can be one of those. After systemd is reexecuted and its previous state is deserialized, systemd notices that initrd-switch-root.service was killed with SIGTERM and considers this as a failure which leads to the emergency shell. To prevent this, this patch teaches systemd to consider a SIGTERM exit as a clean one for this service. It also removes "KillMode=none" since this is pretty useless as the service is never stopped by systemd but it either exits normally or it's killed by a SIGTERM as described previously.
2013-11-26core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= ↵Lennart Poettering
setting and make use of it where applicable
2013-03-09build-sys: don't hard-code binary paths in initrd-*.serviceMichael Biebl
Instead use @bindir@ for udevadm and @rootbindir@ for systemctl.