Antw: Re: Re: "bad" status for genersated target; why?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>> Andrei Borzenkov <arvidjaar@xxxxxxxxx> schrieb am 15.05.2019 um 09:21 in
Nachricht
<CAA91j0WPzJ0RE02EviqS9rrxuxT_z4JZP_uzd6C54+dxKYry1Q@xxxxxxxxxxxxxx>:
> On Wed, May 15, 2019 at 9:01 AM Ulrich Windl
> <Ulrich.Windl@xxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> >>> Andrei Borzenkov <arvidjaar@xxxxxxxxx> schrieb am 14.05.2019 um 20:21
in
>> Nachricht <c39c1270-41bf-dd7a-ed39-11c148f336a9@xxxxxxxxx>:
>> > 14.05.2019 16:39, Ulrich Windl пишет:
>> >> Hi!
>> >>
>> >> Developing my first systemd service I have some problems I don't
>> understand:
>> >> After installation, I get this status:
>> >> # systemctl status iotwatch.target          ● iotwatch.target -
iotwatch
>> I/O
>> >> performance monitor
>> >>    Loaded: loaded (/run/systemd/generator.late/iotwatch.target; bad;
>> vendor
>> >> preset: disabled)
>> >>    Active: inactive (dead)
>> >>      Docs: man:iotwatch@.service(8)
>> >>            man:iotwatch-generator(8)
>> >>
>> >> Why "bad"?
>> >
>> > Again - this has improved in current version which now tells you that
>> > unit is generated.
>>
>> So there's nothing wrong with the unit?
>>
>> >
>> >> # ll /run/systemd/generator.late/iotwatch.target
>> >> -rw-r--r-- 1 root root 281 May 14 15:24
>> >> /run/systemd/generator.late/iotwatch.target
>> >> # systemctl is-enabled iotwatch.target
>> >> Failed to get unit file state for iotwatch.target: No such file or
>> directory
>> >>
>> >> Here we are again: Where should the file be?
>> >> Aren't targets allowed to be generated?
>> >>
>> >
>> > Targets are allowed to be generated but generated units cannot be
>> > enabled/disabled. The rationale probably is that if you create unit file
>> > you can just as well create symlink to this unit file. Also "systemctl
>>
>> I think "Generated iotwatch.target cannot have a state" would be a much
>> improved error message then.
> 
> Define "state".

enabled|disabled

> 
>> So again there's nothing wrong with the unit
>> file?
>>
>> > dameon-reload" removes and re-creates all generated units, so any
>> > symlink to such unit outside of generated subdirectories potentially
>> > becomes invalid.
>>
>> I think all the symlink stuff should be an implementation detail that
>> shouldn't be part of the user interface; instead there should be some
>> higher-level commands to maipulate these.
>>
> 
> It is exactly the opposite - symlinks are *the* official documented
> method to configure unit dependencies; "systemctl enable" is just
> convenience layer on top of it.

To me it's the most horrible part of systemd: Messing with symlinks...

> 
>> >
>> > Documentation could be better indeed.
>>
>> Finally: If a generated unit cannot be enabled or disabled, isn't the
>> "vendor-preset: disabled" the wrong choice:
> 
> Neither is it printed in current systemd version.

OK, good.

> 
>> I specified nothing, and the logic
>> should be: If a generator created a unit it should be enabled; otherwise 
> sich a
>> unit shouldn't be enabled.
>>
> 
> You misinterpret "enabled" and "disabled" basing on their English
> meaning. Unit is "enabled" if links specified in [Install] sections
> are present. Nothing more nothing less. You apparently assume
> "enabled" means something different.

To me "enabled" means "it'll be started on boot" (or other events) and
"stopped on shutdown". "disabled" means the opposite. Quite simple.


> 
> Generators run immediately before systemd computes initial
> transaction; there is no point in time when user could perform
> "systemctl enable" on them - it is already too late, system is already
> booted using whatever configuration (including generated units) was
> present. So any required links really have to be created together with
> generated unit itself.

My point was: Once  a generator generates a target, it should be "enabled"
(see above), I don't see why I (or a program) should have to mess with symbolic
links.

> 
>> I couldn't find the relevant manual page that discusses this topic...
>>
> 
> Yes, the fact that generated units apparently cannot be
> enabled/disabled using systemctl is not documented anywhere. Still
> current systemd gives quite precise error message when you are trying
> to do it. But documentation could certainly be improved.

The problem is you don't know where to start reading, like finding your way in
those old dungeon adventures...

Regards,
Ulrich



_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux