mirror of
https://github.com/systemd/systemd.git
synced 2025-03-10 16:58:28 +03:00
confext/sysext: add initrd-specific units (#35426)
In the rootfs these need to run after /var/lib/ has been set up. In the initrd we want them to run as soon as possible so that they can be used to customize setting up the rootfs.
This commit is contained in:
commit
7a8556b901
@ -1093,7 +1093,11 @@ manpages = [
|
||||
['systemd-sysctl.service', '8', ['systemd-sysctl'], ''],
|
||||
['systemd-sysext',
|
||||
'8',
|
||||
['systemd-confext', 'systemd-confext.service', 'systemd-sysext.service'],
|
||||
['systemd-confext',
|
||||
'systemd-confext-initrd.service',
|
||||
'systemd-confext.service',
|
||||
'systemd-sysext-initrd.service',
|
||||
'systemd-sysext.service'],
|
||||
'ENABLE_SYSEXT'],
|
||||
['systemd-system-update-generator', '8', [], ''],
|
||||
['systemd-system.conf',
|
||||
|
@ -19,8 +19,10 @@
|
||||
<refnamediv>
|
||||
<refname>systemd-sysext</refname>
|
||||
<refname>systemd-sysext.service</refname>
|
||||
<refname>systemd-sysext-initrd.service</refname>
|
||||
<refname>systemd-confext</refname>
|
||||
<refname>systemd-confext.service</refname>
|
||||
<refname>systemd-confext-initrd.service</refname>
|
||||
<refpurpose>Activates System Extension Images</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
|
@ -287,6 +287,11 @@ units = [
|
||||
'file' : 'systemd-confext.service',
|
||||
'conditions' : ['ENABLE_SYSEXT'],
|
||||
},
|
||||
{
|
||||
'file' : 'systemd-confext-initrd.service',
|
||||
'conditions' : ['ENABLE_INITRD', 'ENABLE_SYSEXT'],
|
||||
'symlinks' : ['initrd.target.wants/'],
|
||||
},
|
||||
{
|
||||
'file' : 'systemd-coredump.socket',
|
||||
'conditions' : ['ENABLE_COREDUMP'],
|
||||
@ -619,6 +624,11 @@ units = [
|
||||
'file' : 'systemd-sysext.service',
|
||||
'conditions' : ['ENABLE_SYSEXT'],
|
||||
},
|
||||
{
|
||||
'file' : 'systemd-sysext-initrd.service',
|
||||
'conditions' : ['ENABLE_INITRD', 'ENABLE_SYSEXT'],
|
||||
'symlinks' : ['initrd.target.wants/'],
|
||||
},
|
||||
{
|
||||
'file' : 'systemd-sysext.socket',
|
||||
'conditions' : ['ENABLE_SYSEXT'],
|
||||
|
35
units/systemd-confext-initrd.service
Normal file
35
units/systemd-confext-initrd.service
Normal file
@ -0,0 +1,35 @@
|
||||
# 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 Configuration Images into /etc/
|
||||
Documentation=man:systemd-confext-initrd.service(8)
|
||||
|
||||
ConditionCapability=CAP_SYS_ADMIN
|
||||
ConditionDirectoryNotEmpty=|/run/confexts
|
||||
ConditionDirectoryNotEmpty=|/var/lib/confexts
|
||||
ConditionDirectoryNotEmpty=|/usr/local/lib/confexts
|
||||
ConditionDirectoryNotEmpty=|/usr/lib/confexts
|
||||
ConditionDirectoryNotEmpty=|/.extra/confext
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
|
||||
DefaultDependencies=no
|
||||
Before=local-fs-pre.target cryptsetup-pre.target systemd-tmpfiles-setup.service
|
||||
Wants=local-fs-pre.target cryptsetup-pre.target
|
||||
Conflicts=initrd-switch-root.target
|
||||
Before=initrd-switch-root.target
|
||||
Wants=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
|
||||
After=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=systemd-confext refresh
|
||||
ExecReload=systemd-confext refresh
|
||||
ExecStop=systemd-confext unmerge
|
@ -16,13 +16,13 @@ ConditionDirectoryNotEmpty=|/run/confexts
|
||||
ConditionDirectoryNotEmpty=|/var/lib/confexts
|
||||
ConditionDirectoryNotEmpty=|/usr/local/lib/confexts
|
||||
ConditionDirectoryNotEmpty=|/usr/lib/confexts
|
||||
ConditionDirectoryNotEmpty=|/.extra/confext
|
||||
ConditionPathExists=!/etc/initrd-release
|
||||
|
||||
DefaultDependencies=no
|
||||
After=local-fs.target
|
||||
Before=sysinit.target systemd-tmpfiles-setup.service
|
||||
Conflicts=shutdown.target initrd-switch-root.target
|
||||
Before=shutdown.target initrd-switch-root.target
|
||||
Conflicts=shutdown.target
|
||||
Before=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
|
34
units/systemd-sysext-initrd.service
Normal file
34
units/systemd-sysext-initrd.service
Normal file
@ -0,0 +1,34 @@
|
||||
# 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-initrd.service(8)
|
||||
|
||||
ConditionCapability=CAP_SYS_ADMIN
|
||||
ConditionDirectoryNotEmpty=|/etc/extensions
|
||||
ConditionDirectoryNotEmpty=|/run/extensions
|
||||
ConditionDirectoryNotEmpty=|/var/lib/extensions
|
||||
ConditionDirectoryNotEmpty=|/.extra/sysext
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
|
||||
DefaultDependencies=no
|
||||
Before=local-fs-pre.target cryptsetup-pre.target systemd-tmpfiles-setup.service
|
||||
Wants=local-fs-pre.target cryptsetup-pre.target
|
||||
Conflicts=initrd-switch-root.target
|
||||
Before=initrd-switch-root.target
|
||||
Wants=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
|
||||
After=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=systemd-sysext refresh
|
||||
ExecReload=systemd-sysext refresh
|
||||
ExecStop=systemd-sysext unmerge
|
@ -15,13 +15,13 @@ ConditionCapability=CAP_SYS_ADMIN
|
||||
ConditionDirectoryNotEmpty=|/etc/extensions
|
||||
ConditionDirectoryNotEmpty=|/run/extensions
|
||||
ConditionDirectoryNotEmpty=|/var/lib/extensions
|
||||
ConditionDirectoryNotEmpty=|/.extra/sysext
|
||||
ConditionPathExists=!/etc/initrd-release
|
||||
|
||||
DefaultDependencies=no
|
||||
After=local-fs.target
|
||||
Before=sysinit.target systemd-tmpfiles-setup.service
|
||||
Conflicts=shutdown.target initrd-switch-root.target
|
||||
Before=shutdown.target initrd-switch-root.target
|
||||
Conflicts=shutdown.target
|
||||
Before=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
|
Loading…
x
Reference in New Issue
Block a user