From: Luca BRUNO Date: Mon, 19 Sep 2022 10:09:17 +0000 (+0000) Subject: docs: add a note about selectively overriding default dependencies X-Git-Tag: v252-rc1~135 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=72ceee435d9d585115bd89f8aca4883d240cd387;p=thirdparty%2Fsystemd.git docs: add a note about selectively overriding default dependencies This documents that explicit `Before=`/`After=` dependencies can be used to selectively override implicit ordering coming from default dependencies. That allows for more granular control compared to the already documented `DefaultDependencies=no` option. The alternative approach came up in a discussion around the ordering of `boot-complete.target`, so this also adds an explicit suggestion in that direction to the "Automatic Boot Assessment" documentation. Ref: https://lists.freedesktop.org/archives/systemd-devel/2022-September/048330.html --- diff --git a/docs/AUTOMATIC_BOOT_ASSESSMENT.md b/docs/AUTOMATIC_BOOT_ASSESSMENT.md index c1173cf5093..c2a53f48dcf 100644 --- a/docs/AUTOMATIC_BOOT_ASSESSMENT.md +++ b/docs/AUTOMATIC_BOOT_ASSESSMENT.md @@ -197,6 +197,14 @@ are a couple of recommendations. wrap them in a unit and order them after `boot-complete.target`, pulling it in. + Such unit would be typically wanted (or required) by one of the + [`bootup`](https://www.freedesktop.org/software/systemd/man/bootup.html) targets, + for example `multi-user.target`. To avoid potential loops due to conflicting + [default dependencies](https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Default%20Dependencies) + ordering, it is recommended to also add an explicit dependency (e.g. + `After=multi-user.target`) to the unit. This overrides the implicit ordering + and allows `boot-complete.target` to start after the given bootup target. + ## FAQ 1. *I have a service which — when it fails — should immediately cause a diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 02d5e72aeeb..e29bb985404 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -331,11 +331,11 @@ For example, target units will complement all configured dependencies of type Wants= or Requires= with dependencies of type - After= unless DefaultDependencies=no is set in the - specified units. See + After=. See systemd.target5 - for details. Note that this behavior can be turned off by setting - DefaultDependencies=no. + for details. Note that this behavior can be opted out by setting + DefaultDependencies=no in the specified units, or it can be selectively + overidden via an explicit Before= dependency.