1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-01-06 13:17:44 +03:00

units/initrd-parse-etc.service: Conflict with emergency.target

If emergency.target is started while initrd-parse-etc.service/start is queued,
the initrd-parse-etc job did not get canceled. In parallel to the emergency
units, it eventually runs the service, which starts initrd-cleanup.service,
which in turn isolates initrd-switch-root.target. This stops the emergency
units and effectively starts the initrd boot process again, which likely
fails again like the initial attempt. The system is thus stuck in an endless
loop, never really reaching emergency.target.

With this conflict added, starting emergency.target automatically cancels
initrd-parse-etc.service/start, avoiding the loop.

(cherry picked from commit 327cd2d3db)
This commit is contained in:
Fabian Vogt 2023-08-08 12:52:53 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent dfc0445cb8
commit 72da03631a

View File

@ -15,6 +15,8 @@ DefaultDependencies=no
Requires=initrd-root-fs.target
After=initrd-root-fs.target
Conflicts=emergency.target
OnFailure=emergency.target
OnFailureJobMode=replace-irreversibly