[systemd-devel] Special targets - should they Want or be WantedBy?

Andrey Borzenkov arvidjaar at gmail.com
Wed Mar 23 09:57:23 PDT 2011


On Wed, Mar 23, 2011 at 7:44 PM, Mike Kazantsev <mk.fraggod at gmail.com> wrote:
> On Wed, 23 Mar 2011 15:35:35 +0300
> Andrey Borzenkov <arvidjaar at mail.ru> wrote:
>
>> On Fri, Mar 18, 2011 at 3:06 PM, Mike Kazantsev <mk.fraggod at gmail.com> wrote:
>> > On Fri, 18 Mar 2011 14:11:47 +0300
>> > Andrey Borzenkov <arvidjaar at mail.ru> wrote:
>> >
>> >> On Fri, Mar 18, 2011 at 8:31 AM, Mike Kazantsev <mk.fraggod at gmail.com> wrote:
>> >> >
>> >> > That'd make all the systems with currently enabled services in
>> >> > network.target.wants misconfigured - network should fail on these
>> >> > unless something Requires= (or Wants=) network.target explicitly (which
>> >> > was marked as a wrong way to depend on network), so I think maybe some
>> >> > larger announcement for packagers is in order as well, to leave less
>> >> > broken systems and angry users as a result ;)
>> >> >
>> >>
>> >> I am not sure I really understand this. When you speak about services
>> >> WantedBy network.target - do you mean services activated on-demand
>> >> when network becomes available.
>> >
>> > No, these are services that make the network work.
>> > They are pulled in for network.target, so any service starting after
>> > that will be able to bind to some interface or connect to a remote host.
>> >
>> >
>>
>> OK, but how they are broken now? If you start network.target by some
>> external means (IIRC it was not started by default) it will continue
>> to work as before - nothing is changed.
>>
>> I really miss something obvious here.
>>
>
> You want ipsec started and postgresql and remote-fs started after it's
> up along with the network.
>
> Note the difference.
>
> Before:
>  started: network.target.wants/wicd.service
>  started: network.target.wants/ipsec.service
>  started: network.target

What pulled in network.target?

>  started: remote-fs.target (Requires=network.target)
>  started: multi-user.target.wants/postgresql.service (only After=network.service)
>
> After:
>  NOT started (fail!): network.target.wants/wicd.service
>  NOT started (fail!): network.target.wants/ipsec.service
>  NOT started (fail!): network.target
>  started w/o net/ipsec (fail!): remote-fs.target (no Requires=network.target now!)
>  started w/o net/ipsec (fail!): multi-user.target.wants/postgresql.service
>
> So, if you won't update ipsec.service to pull in network.target and
> push it to multi-user.target (by disable/enable or rm/ln) you have a
> broken setup wrt network.
> Note that the last step modifies /etc and shouldn't be easy to do
> automagically in packages, so maybe a warning will be better there.
>
>
> --
> Mike Kazantsev // fraggod.net
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
>


More information about the systemd-devel mailing list