diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 03e42d5fd8..12e3610ab8 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -1374,11 +1374,23 @@ If the systemd.condition-needs-update= option is specified on the kernel command line (taking a boolean), it will override the result of this condition check, taking - precedence over any file modification time checks. If it is used + precedence over any file modification time checks. If the kernel command line option is used, systemd-update-done.service will not have immediate effect on any following ConditionNeedsUpdate= checks, until the system is rebooted where the kernel command line option is not specified anymore. - + + Note that to make this scheme effective, the timestamp of /usr/ should + be explicitly updated after its contents are modified. The kernel will automatically update + modification timestamp on a directory only when immediate children of a directory are modified; an + modification of nested files will not automatically result in mtime of /usr/ + being updated. + + Also note that if the update method includes a call to execute appropriate post-update steps + itself, it should not touch the timestamp of /usr/. In a typical distribution + packaging scheme, packages will do any required update steps as part of the installation or + upgrade, to make package contents immediately usable. ConditionNeedsUpdate= + should be used with other update mechanisms where such an immediate update does not + happen.