On 07/03/2015 11:08 AM, Lennart Poettering wrote: > On Tue, 30.06.15 17:37, Francis Moreau (francis.m...@gmail.com) wrote: > >> Hi, >> >> I have a service 'A' which creates a device 'X' and does some >> configuring of the device. The device is created in a 'ExecStart=' >> directive whereas its configuration happens during 'ExecStartPost='. >> >> But it seems that as soon as the device is seen by systemd, it creates >> the corresponding device service and starts all services that depeneds >> on this device. > > What kind of a device is this? block device?
Yes, it's a block device which needs some initialization before being mounted. Actually I found a similar case with cryptsetup: $ cat systemd-cryptsetup\@cr_tmp.service ... [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/systemd/systemd-cryptsetup attach 'cr_tmp' '/dev/vdb' 'none' 'tmp' ExecStartPost=/sbin/mke2fs '/dev/mapper/cr_tmp' ... Basically command in ExecStart will create the device and systemd will create the corresponding device unit file and will start all deps which are waiting for this device. Mount service can be one of them. Note that this happens while the device creation service is still not finished. Then systemd will execute ExecStarPost command while device's deps are running which is incorrect since you can end up with mount trying to operate on a fsck'ed FS. > > You should mark your device with SYSTEMD_READY=0 in udev, as > long as it is not ready to be exposed. Check 99-systemd.rules for a > few examples where we do this for loopback or mdadm devices as long as > they are not fully set up. > Noted, I'm going to have a look at how this works. That said it's still not clear to me if a service can delay the device service availability. IOW does something like below is supposed to work: $ cat my-device-creation.service: ... Before=my-device.device ... From my basic testing, it doesn't seem supported. Thanks. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel