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

Andrei Borzenkov arvidjaar at gmail.com
Thu Feb 12 22:49:59 PST 2015


В 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.


More information about the systemd-devel mailing list