units: condition out a few services in the initrd

Let's make our units more robust to being added to an initrd:

1. systemd-boot-update only makes sense if sd-boot is available in /usr/
   to copy into the ESP. This is generally not the case in initrds, and
   even if it was, we shouldn't update the ESP from the initrd, but from
   the host instead.

2. The rfkill services save/restore rfkill state, but that information
   is only available once /var/ is mounted, which generally happens
   after the initrd transition.

3. utmp management is partly in /var/, and legacy anyway, hence don't
   bother with it in the initrd.
This commit is contained in:
Lennart Poettering 2023-07-04 22:31:11 +02:00 committed by Yu Watanabe
parent 9f6e0bd417
commit 49c55abcbe
5 changed files with 7 additions and 0 deletions

View File

@ -10,6 +10,7 @@
[Unit]
Description=Automatic Boot Loader Update
Documentation=man:bootctl(1)
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
After=local-fs.target

View File

@ -10,6 +10,8 @@
[Unit]
Description=Load/Save RF Kill Switch Status
Documentation=man:systemd-rfkill.service(8)
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
BindsTo=sys-devices-virtual-misc-rfkill.device
Conflicts=shutdown.target

View File

@ -10,6 +10,7 @@
[Unit]
Description=Load/Save RF Kill Switch Status /dev/rfkill Watch
Documentation=man:systemd-rfkill.socket(8)
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
BindsTo=sys-devices-virtual-misc-rfkill.device

View File

@ -10,6 +10,8 @@
[Unit]
Description=Record Runlevel Change in UTMP
Documentation=man:systemd-update-utmp-runlevel.service(8) man:utmp(5)
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
RequiresMountsFor=/var/log/wtmp
Conflicts=shutdown.target

View File

@ -10,6 +10,7 @@
[Unit]
Description=Record System Boot/Shutdown in UTMP
Documentation=man:systemd-update-utmp.service(8) man:utmp(5)
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service