From fe7f113c1331e11af4e9f815d7305c8b1b332312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 21 May 2021 10:53:25 +0200 Subject: [PATCH] units: skip some units in the initrd I'm working on building initramfs images directly from normal packages, and it doesn't make sense for those units to be started. Pristine system rpms need to behave correctly as much as possible also in the initrd, and those units are enabled by the rpms. There usually isn't enough time for the timer to actually fire, but starting it gives a line on the console and generally looks confusing and sloppy. Flushing the journal means that its actually lost, since the real /var is not available yet. Another approach would be not enable those units, but right now they are statically enabled, and changing that would be more work, and doesn't really seem necessary, since the condition checks are very quick. Checking for /etc/initrd-release is the standard condition that the initrd units use, so let's do the same here. --- units/systemd-journal-flush.service | 1 + units/systemd-random-seed.service.in | 1 + units/systemd-tmpfiles-clean.timer | 1 + 3 files changed, 3 insertions(+) diff --git a/units/systemd-journal-flush.service b/units/systemd-journal-flush.service index 1a71592b93..6423f6ea80 100644 --- a/units/systemd-journal-flush.service +++ b/units/systemd-journal-flush.service @@ -15,6 +15,7 @@ Requires=systemd-journald.service After=systemd-journald.service systemd-remount-fs.service Before=systemd-tmpfiles-setup.service RequiresMountsFor=/var/log/journal +ConditionPathExists=!/etc/initrd-release [Service] ExecStart=journalctl --flush diff --git a/units/systemd-random-seed.service.in b/units/systemd-random-seed.service.in index 5c542ec846..1aa9af9710 100644 --- a/units/systemd-random-seed.service.in +++ b/units/systemd-random-seed.service.in @@ -17,6 +17,7 @@ After=systemd-remount-fs.service Before=first-boot-complete.target shutdown.target Wants=first-boot-complete.target ConditionVirtualization=!container +ConditionPathExists=!/etc/initrd-release [Service] Type=oneshot diff --git a/units/systemd-tmpfiles-clean.timer b/units/systemd-tmpfiles-clean.timer index 6c6cfe7a08..310cfe28e3 100644 --- a/units/systemd-tmpfiles-clean.timer +++ b/units/systemd-tmpfiles-clean.timer @@ -10,6 +10,7 @@ [Unit] Description=Daily Cleanup of Temporary Directories Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) +ConditionPathExists=!/etc/initrd-release [Timer] OnBootSec=15min