[systemd-devel] multi-user.target only wants network.service if I'm doing 'systemct show runlevel3.target'

Lennart Poettering lennart at poettering.net
Fri Feb 13 01:52:36 PST 2015


On Fri, 13.02.15 09:49, Andrei Borzenkov (arvidjaar at gmail.com) wrote:

> В Wed, 11 Feb 2015 21:19:16 +0100
> Lennart Poettering <lennart at poettering.net> пишет:
> 
> > > 
> > > But the problem is not limited to legacy initscripts. It makes it
> > > generally unsafe to have aliases via symlinks. Aliases were always
> > > meant "for compatibility" but this problems exactly means that
> > > "compatibility" is broken here - when you replace unit A with
> > > compatibility link to unit B things may be broken unless you always
> > > refer to A when you refer to B. At which point why have alias at all?
> > 
> > I think it's completely Ok that dependencies on aliases only work as
> > long as they are referenced at least once by them. This isn't really
> > that surprising a behaviour I think. 
> > 
> 
> Sorry if I was not clear. User had WantedBy=A.target in the past and
> other places had Want/Require=A.target. Now A.target -> B.target and
> all other places were adjusted to Want/Require=B.target. As was
> demonstrated all user units that were using WantedBy=A.target are now
> effectively broken.
> 
> Aliases imply that they are interchangeable. If they are not that must
> be at least quite clear and explicitly stated so in manual. If aliases
> are not interchangeable than the only use case I can see is for one way
> migration from old to new name but exactly this use case is broken.

Sure, we can always have more documentation.

But I think they actually have a lot of uses still, since they allow
mapping of some fixed name to a variety of different choices. As long
as the fixed name is explicitly requested all is good.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list