1<?xml version="1.0"?> 2<!--*-nxml-*--> 3<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 4 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> 5<!-- SPDX-License-Identifier: LGPL-2.1-or-later --> 6<refentry id="systemd-update-done.service"> 7 8 <refentryinfo> 9 <title>systemd-update-done.service</title> 10 <productname>systemd</productname> 11 </refentryinfo> 12 13 <refmeta> 14 <refentrytitle>systemd-update-done.service</refentrytitle> 15 <manvolnum>8</manvolnum> 16 </refmeta> 17 18 <refnamediv> 19 <refname>systemd-update-done.service</refname> 20 <refname>systemd-update-done</refname> 21 <refpurpose>Mark <filename>/etc/</filename> and <filename>/var/</filename> fully updated</refpurpose> 22 </refnamediv> 23 24 <refsynopsisdiv> 25 <para><filename>systemd-update-done.service</filename></para> 26 <para><filename>/usr/lib/systemd/systemd-update-done</filename></para> 27 </refsynopsisdiv> 28 29 <refsect1> 30 <title>Description</title> 31 32 <para><filename>systemd-update-done.service</filename> is a 33 service that is invoked as part of the first boot after the vendor 34 operating system resources in <filename>/usr/</filename> have been 35 updated. This is useful to implement offline updates of 36 <filename>/usr/</filename> which might require updates to 37 <filename>/etc/</filename> or <filename>/var/</filename> on the 38 following boot.</para> 39 40 <para><filename>systemd-update-done.service</filename> updates the 41 file modification time (mtime) of the stamp files 42 <filename>/etc/.updated</filename> and 43 <filename>/var/.updated</filename> to the modification time of the 44 <filename>/usr/</filename> directory, unless the stamp files are 45 already newer.</para> 46 47 <para>Services that shall run after offline upgrades of 48 <filename>/usr/</filename> should order themselves before 49 <filename>systemd-update-done.service</filename>, and use the 50 <varname>ConditionNeedsUpdate=</varname> (see 51 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>) 52 condition to make sure to run when <filename>/etc/</filename> or 53 <filename>/var/</filename> are older than <filename>/usr/</filename> 54 according to the modification times of the files described above. 55 This requires that updates to <filename>/usr/</filename> are always 56 followed by an update of the modification time of 57 <filename>/usr/</filename>, for example by invoking 58 <citerefentry project='man-pages'><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry> 59 on it.</para> 60 61 <para>Note that if the <varname>systemd.condition-needs-update=</varname> kernel command line option is 62 used it overrides the <varname>ConditionNeedsUpdate=</varname> unit condition checks. In that case 63 <filename>systemd-update-done.service</filename> will not reset the condition state until a follow-up 64 reboot where the kernel switch is not specified anymore.</para> 65 </refsect1> 66 67 <refsect1> 68 <title>See Also</title> 69 <para> 70 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, 71 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, 72 <citerefentry project='man-pages'><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry> 73 </para> 74 </refsect1> 75 76</refentry> 77