]> git.ipfire.org Git - thirdparty/systemd.git/commit
core: consider SIGTERM as a clean exit status for initrd-switch-root.service (#4713)
authorFranck Bui <fbui@suse.com>
Wed, 23 Nov 2016 15:31:24 +0000 (16:31 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 23 Nov 2016 15:31:24 +0000 (16:31 +0100)
commita4021390fef27f4136497328f2e35e79bc88855d
tree9237ed94179c62e3461329ca89aee179c068fd76
parent3d4cf7de48a74726694abbaa09f9804b845ff3ba
core: consider SIGTERM as a clean exit status for initrd-switch-root.service (#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.
units/initrd-switch-root.service.in