---
name: "systemd-update-done"
section: "8"
platform: "linux"
package: "systemd"
version: "257.13-1~deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/systemd-update-done.service"
---

# systemd-update-done(8)

Mark /etc/ and /var/ fully updated

Part of [systemd-update-done.service(8)](/systemd-update-done.service/8.md).

## NAME

systemd-update-done.service, systemd-update-done - Mark /etc/ and /var/ fully updated

## SYNOPSIS

systemd-update-done.service

/usr/lib/systemd/systemd-update-done

## DESCRIPTION

systemd-update-done.service is a service that is invoked as part of the first boot after the vendor operating system resources in /usr/ have been updated. This is useful to implement offline updates of /usr/ which might require updates to /etc/ or /var/ on the following boot.

systemd-update-done.service updates the file modification time (mtime) of the stamp files /etc/.updated and /var/.updated to the modification time of the /usr/ directory, unless the stamp files are already newer.

Services that shall run after offline upgrades of /usr/ should order themselves before systemd-update-done.service, and use the *ConditionNeedsUpdate=* (see [**systemd.unit**(5)](/systemd.unit/5.md)) condition to make sure to run when /etc/ or /var/ are older than /usr/ according to the modification times of the files described above. This requires that updates to /usr/ are always followed by an update of the modification time of /usr/, for example by invoking [**touch**(1)](/touch/1.md) on it.

Note that if the *systemd.condition\_needs\_update=* kernel command line option is used it overrides the *ConditionNeedsUpdate=* unit condition checks. In that case systemd-update-done.service will not reset the condition state until a follow-up reboot where the kernel switch is not specified anymore.

## SEE ALSO

[**systemd**(1)](/systemd/1.md), [**systemd.unit**(5)](/systemd.unit/5.md), [**touch**(1)](/touch/1.md)
