[systemd-devel] Bug? Ordering services on device aliases

Dave Reisner d at falconindy.com
Mon Jul 9 17:30:49 PDT 2012


On Tue, Jul 10, 2012 at 12:32:18AM +0200, Lennart Poettering wrote:
> On Mon, 25.06.12 16:23, Dave Reisner (d at falconindy.com) wrote:
> 
> >   $ systemctl -t device --full --all --no-pager | grep net
> >   sys-devices-pci0000:00-0000:00:03.0-virtio0-net-eth0.device loaded active
> >   sys-subsystem-net-devices-eth0.device                       loaded
> >   inactive
> 
> Hmm,  if you do "systemctl show
> sys-devices-pci0000:00-0000:00:03.0-virtio0-net-eth0.device", do you see
> the alias name listed in Names=? Do you see the name listed properly for
> other network devices?
> 

In the failing case, the Names= property only shows the real device name,
and _not_ the Alias. In the non-failing case, the Names= property shows
both the name for the full device path as well as the Alias.

> > 
> > The device node itself looks just fine, according to udev:
> > 
> >   $ udevadm info -q property /devices/pci0000:00/0000:00:03.0/virtio0/net/eth0
> >   DEVPATH=/devices/pci0000:00/0000:00:03.0/virtio0/net/eth0
> >   ID_BUS=pci
> >   ID_MODEL_FROM_DATABASE=Virtio network device
> >   ID_MODEL_ID=/sys/devices/pci0000:00/0000:00:03.0/virtio0
> >   ID_VENDOR_FROM_DATABASE=Red Hat, Inc
> >   ID_VENDOR_ID=0x1af4
> >   IFINDEX=2
> >   INTERFACE=eth0
> >   SUBSYSTEM=net
> >   SYSTEMD_ALIAS=/sys/subsystem/net/devices/eth0
> >   TAGS=:systemd:
> >   USEC_INITIALIZED=95201
> > 
> > Meanwhile, this of course means that dhcpcd at eth0.service is sitting
> > idle:
> > 
> >   $ systemctl status dhcpcd at eth0.service
> >   dhcpcd at eth0.service - dhcpcd on eth0
> >       Loaded: loaded (/etc/systemd/system/dhcpcd at .service; enabled)
> >       Active: inactive (dead)
> >       CGroup: name=systemd:/system/dhcpcd at .service/eth0
> > 
> > As soon as I reboot without the After=/BindTo= ordering on dhcpcd at .service,
> > the alias shows as active:
> > 
> >   $ systemctl status sys-subsystem-net-devices-eth0.device
> >   sys-devices-pci0000:00-0000:00:03.0-virtio0-net-eth0.device - Virtio network device
> >       Loaded: loaded
> >       Active: active (plugged) since Mon, 25 Jun 2012 16:16:52 -0400; 46s ago
> >       Device: /sys/devices/pci0000:00/0000:00:03.0/virtio0/net/eth0
> > 
> > Were device aliases not intended to be used this way? If not, what's the
> > purpose? How can I order a network service against a device to ensure
> > it's started properly?
> 
> It shoul definitely work. But there might be a bug with the logic
> actually, i.e. instead of actually adding this stuff as alias, we
> probably need to implement this via the "follows" logic, simply because
> such an alias name might refer to a different .device unit over time,
> and aliases never change.
> 
> I will have a look into this.

Thanks! This is going to be quite useful once it's working.

> Lennart
> 
> -- 
> Lennart Poettering - Red Hat, Inc.
> _______________________________________________
> 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