mirror of
https://github.com/systemd/systemd.git
synced 2024-11-28 21:03:52 +08:00
f8b4ae29c7
This should be useful for addressing #15724.
77 lines
3.3 KiB
XML
77 lines
3.3 KiB
XML
<?xml version="1.0"?>
|
|
<!--*-nxml-*-->
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
|
|
<refentry id="systemd-update-done.service">
|
|
|
|
<refentryinfo>
|
|
<title>systemd-update-done.service</title>
|
|
<productname>systemd</productname>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>systemd-update-done.service</refentrytitle>
|
|
<manvolnum>8</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>systemd-update-done.service</refname>
|
|
<refname>systemd-update-done</refname>
|
|
<refpurpose>Mark <filename>/etc</filename> and <filename>/var</filename> fully updated</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<para><filename>systemd-update-done.service</filename></para>
|
|
<para><filename>/usr/lib/systemd/systemd-update-done</filename></para>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para><filename>systemd-update-done.service</filename> is a
|
|
service that is invoked as part of the first boot after the vendor
|
|
operating system resources in <filename>/usr</filename> have been
|
|
updated. This is useful to implement offline updates of
|
|
<filename>/usr</filename> which might require updates to
|
|
<filename>/etc</filename> or <filename>/var</filename> on the
|
|
following boot.</para>
|
|
|
|
<para><filename>systemd-update-done.service</filename> updates the
|
|
file modification time (mtime) of the stamp files
|
|
<filename>/etc/.updated</filename> and
|
|
<filename>/var/.updated</filename> to the modification time of the
|
|
<filename>/usr</filename> directory, unless the stamp files are
|
|
already newer.</para>
|
|
|
|
<para>Services that shall run after offline upgrades of
|
|
<filename>/usr</filename> should order themselves before
|
|
<filename>systemd-update-done.service</filename>, and use the
|
|
<varname>ConditionNeedsUpdate=</varname> (see
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
|
|
condition to make sure to run when <filename>/etc</filename> or
|
|
<filename>/var</filename> are older than <filename>/usr</filename>
|
|
according to the modification times of the files described above.
|
|
This requires that updates to <filename>/usr</filename> are always
|
|
followed by an update of the modification time of
|
|
<filename>/usr</filename>, for example by invoking
|
|
<citerefentry project='man-pages'><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
on it.</para>
|
|
|
|
<para>Note that if the <varname>systemd.condition-needs-update=</varname> kernel command line option is
|
|
used it overrides the <varname>ConditionNeedsUpdate=</varname> unit condition checks. In that case
|
|
<filename>systemd-update-done.service</filename> will not reset the condition state until a follow-up
|
|
reboot where the kernel switch is not specified anymore.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry project='man-pages'><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|