mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
core: copy the host's os-release for /run/host/os-release
Currently for portable services we automatically add a bind mount os-release -> /run/host/os-release. This becomes problematic for the soft-reboot case, as it's likely that portable services will be configured to survive it, and thus would forever keep a reference to the old host's os-release, which would be a problem because it becomes outdated, and also it stops the old rootfs from being garbage collected. Create a copy when the manager starts under /run/systemd/propagate instead, and bind mount that for all services using RootDirectory=/RootImage=, so that on soft-reboot the content gets updated (without creating a new file, so the existing bind mounts will see the new content too). This expands the /run/host/os-release protocol to more services, but I think that's a nice thing to have too. Closes https://github.com/systemd/systemd/issues/28023
This commit is contained in:
@@ -139,6 +139,14 @@
|
||||
not be able to log via the syslog or journal protocols to the host logging infrastructure, unless the
|
||||
relevant sockets are mounted from the host, specifically:</para>
|
||||
|
||||
<para>The host's
|
||||
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
file will be made available for the service (read-only) as
|
||||
<filename>/run/host/os-release</filename>.
|
||||
It will be updated automatically on soft reboot (see:
|
||||
<citerefentry><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>),
|
||||
in case the service is configured to survive it.</para>
|
||||
|
||||
<example>
|
||||
<title>Mounting logging sockets into root environment</title>
|
||||
|
||||
@@ -172,6 +180,14 @@
|
||||
<para>Units making use of <varname>RootImage=</varname> automatically gain an
|
||||
<varname>After=</varname> dependency on <filename>systemd-udevd.service</filename>.</para>
|
||||
|
||||
<para>The host's
|
||||
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
file will be made available for the service (read-only) as
|
||||
<filename>/run/host/os-release</filename>.
|
||||
It will be updated automatically on soft reboot (see:
|
||||
<citerefentry><refentrytitle>systemd-soft-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>),
|
||||
in case the service is configured to survive it.</para>
|
||||
|
||||
<xi:include href="system-only.xml" xpointer="singular"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user