[systemd-devel] Requires and After
Reindl Harald
h.reindl at thelounge.net
Wed Jan 2 03:33:26 UTC 2019
Am 02.01.19 um 04:13 schrieb James Feeney:
>> It's about Requires and After. I think a unit in Requires should imply
>> that unit in After too, otherwise the requirement isn't really met.
>> Is there a use case for Requires but not After?
>
> Olaf, previously, on GitHub, you had said:
>
>>> I think I understand Requires and After ...
>
> and, I would suggest that, no - or you would not be asking this question.
>
> systemd has two different classes of "dependencies": 1) "activation" dependencies, and 2) "ordering" dependencies.
>
> An activation dependency does not, a priori, have to obey any rules about ordering. There are not, automatically, any promises or guarantees about in what order service units, for instance, might be queued for execution, based upon a Requires= dependency.
>
> "Ordering" is an independent characteristic from "Activation". "Activation" only promises to enqueue a unit, and then, only if the unit is some kind of unit that can be "executed", such as a timer or service unit. In contrast, for instance, systemd is only a "passive observer" of a device unit. "enqueuing" a device unit for "activation" would make no sense in this context. A *service* unit that *creates* a device unit could be enqueued for activation, but not the device unit itself.
but this has no logic at all
"After" is a soft dependency, if that unit isn't enabled or don#t exist
at all it don't matter
"Requires" is a hard dependency and it makes no sense not imply ordering
More information about the systemd-devel
mailing list