]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
units: add systemd-sysext.service unit for auto-activating extensions at boot
authorLennart Poettering <lennart@poettering.net>
Sat, 9 Jan 2021 21:24:55 +0000 (22:24 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 19 Jan 2021 12:41:42 +0000 (13:41 +0100)
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
units/systemd-sysext.service.in [new file with mode: 0644]

index 7b18f1bfea0a132e92fa80c849313baad142832f..bdfb2e52ce24d356b1c20aaf3673ad9c5b719732 100644 (file)
@@ -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 (file)
index 0000000..17b0837
--- /dev/null
@@ -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