units/initrd-parse-etc.service: Conflict with emergency.target
authorFabian Vogt <fvogt@suse.de>
Tue, 8 Aug 2023 10:52:53 +0000 (12:52 +0200)
committerLuca Boccassi <luca.boccassi@gmail.com>
Tue, 8 Aug 2023 19:24:39 +0000 (20:24 +0100)
commit327cd2d3db703555f8d572b4cd055fbe55e1068b
tree4e8b5918a4b334e7285a450439ed57068c1da41e
parent60696b22d96d0c27680400818672e16f8bb2d53b
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.
units/initrd-parse-etc.service.in