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

Mike Kazantsev mk.fraggod at gmail.com
Wed Mar 23 09:44:05 PDT 2011


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
  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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20110323/9f8db394/attachment-0001.pgp>


More information about the systemd-devel mailing list