From 205e5bcc1cf840ed014037a8cbad1df221cc3ac2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 9 Jan 2021 22:24:55 +0100 Subject: [PATCH] units: add systemd-sysext.service unit for auto-activating extensions at boot We'll leave this as opt-in (i.e. a unit that must be enabled explicitly), since this is supposed to be a debug/developer feature primarily, and thus no be around in regular production systems. --- units/meson.build | 1 + units/systemd-sysext.service.in | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 units/systemd-sysext.service.in diff --git a/units/meson.build b/units/meson.build index 7b18f1bfea0..bdfb2e52ce2 100644 --- a/units/meson.build +++ b/units/meson.build @@ -211,6 +211,7 @@ in_units = [ ['systemd-oomd.service', 'ENABLE_OOMD'], ['systemd-portabled.service', 'ENABLE_PORTABLED', 'dbus-org.freedesktop.portable1.service'], + ['systemd-sysext.service', 'ENABLE_SYSEXT'], ['systemd-userdbd.service', 'ENABLE_USERDB'], ['systemd-homed.service', 'ENABLE_HOMED'], ['systemd-quotacheck.service', 'ENABLE_QUOTACHECK'], diff --git a/units/systemd-sysext.service.in b/units/systemd-sysext.service.in new file mode 100644 index 00000000000..17b08375542 --- /dev/null +++ b/units/systemd-sysext.service.in @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Merge System Extension Images into /usr/ and /opt/ +Documentation=man:systemd-sysext.service(8) +DefaultDependencies=no +Conflicts=shutdown.target +After=local-fs.target +Before=sysinit.target shutdown.target systemd-tmpfiles.service +ConditionCapability=CAP_SYS_ADMIN +ConditionDirectoryNotEmpty=|/etc/extensions +ConditionDirectoryNotEmpty=|/run/extensions +ConditionDirectoryNotEmpty=|/var/lib/extensions +ConditionDirectoryNotEmpty=|/usr/local/lib/extensions +ConditionDirectoryNotEmpty=|/usr/lib/extensions + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@rootbindir@/systemd-sysext --merge +ExecStop=@rootbindir@/systemd-sysext --unmerge + +[Install] +WantedBy=sysinit.target -- 2.47.3