[systemd-devel] Antw: Re: Q: Wants and WantedBy links in generated units and circular dependencies

Ulrich Windl Ulrich.Windl at rz.uni-regensburg.de
Thu May 23 11:03:30 UTC 2019

>>> Andrei Borzenkov <arvidjaar at gmail.com> schrieb am 23.05.2019 um 12:41 in
<CAA91j0WdcF=KTWrxrQkiYisSiR1J16VzD0aVn1fFg0vEh1TkTA at mail.gmail.com>:
> On Thu, May 23, 2019 at 11:56 AM Ulrich Windl
> <Ulrich.Windl at rz.uni-regensburg.de> wrote:
>> Hi!
>> After seeing that systemd generators are run as the very first step in
>> systemd's life (deduced from the timestamps), I quit the idea of using
>> and started to use another sort of generator:
>> I have a generator target, that creates another target and a few service
>> targets.
>> The interesting point is circular dependencies for the generated units,
>> I'd like to ask if the following would work:
>> I need to enable a generated target to get ist wants-links installed; 
> likewise
>> the generated service units need to be enabled to get the wants link from 
> the
>> target to the service.
>> As my generator created the service units first, then the target unit
>> "Wants" the service units.
>> The idea is that starting the soingle target unit will start all depending
>> service units.
>> So far that is without enabling. I wonder whether I can enable the service
>> units that are "WantedBy" the target unit _before_ the target unit was 
> actually
>> generated.
> If target unit Wants your service units, there is nothing to enable.

I want to avoid the confusing "Reason: No such file or directory".

>> If that doesn't work, I'll need a two-pass approach.
>> For history, one of the odd things in systemd v228 is this:
>>  # systemctl status iotwatch.target
>> ● iotwatch.target
>>    Loaded: not-found (Reason: No such file or directory)
>>    Active: inactive (dead)
>> # systemctl enable iotwatch.target   ### thios command must do something
>> magic!
> It also implicitly does "systemctl daemon-reload". It should not
> really be necessary in this case (systemd should attempt to load
> missing definition) but with so old version who knows.

The advantage of "enable" is that it outputs messages that show what it is

>> # systemctl status iotwatch.target
>> ● iotwatch.target - iotwatch I/O performance monitor
>>    Loaded: loaded (/run/systemd/system/iotwatch.target; enabled; vendor
>> preset: disabled)
>>    Active: inactive (dead)
>>      Docs: man:iotwatch at .service(8)
>>            man:iotwatch-generator(8)
>> So it seems I must enable units just to be able to query whether they are
>> enabled...???
> systemctl is-enabled

Will "is-enabled" work where "status" fails with "Reason: No such file or


More information about the systemd-devel mailing list