Index · Directives · Python · libudev · gudev systemd 220

## 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 requires 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)) 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) on it.

## See Also

systemd(1), systemd.unit(5), touch(1)