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

Lennart Poettering lennart at poettering.net
Tue Dec 9 05:10:59 PST 2014

On Tue, 09.12.14 11:19, Francis Moreau (francis.moro at gmail.com) wrote:

> Hello,
> I've a very weird behaviour with systemd 217:
> # systemctl show -p Wants multi-user.target | grep network.service
> # systemctl show -p Wants runlevel3.target | grep network.service
> Wants= ... network.service ...
> # systemctl show -p Wants multi-user.target | grep network.service
> Wants=... network.service ...
> So basically the network.service is not part of the multi-user target
> dependencies. But if I'm showing the state of the runlevel3 target, the
> network service magically becomes a dep of multi-user.target.
> The network.service is an sysv service which is started by rc[345].d and
> has in its LSB:
> Provide: $network
> Could anybody clarify what I'm facing ?

systemd lazy loads services from the file system as they are
referenced. This includes symlinked aliases, which are only loaded when
a unit is referenced by that specific name.

> Also it appears that runlevel3 target is an alias for multi-user one.
> Could anybody where this alias is done ? If that's in the source code of
> systemd I would be curious to see where exactly.

The /usr/lib/systemd/system/runlevel[0-5].target symlinks create these
alias names.


Lennart Poettering, Red Hat

More information about the systemd-devel mailing list