[systemd-devel] Pairing udev's SYSTEMD_WANTS and systemd's templated units
Lennart Poettering
lennart at poettering.net
Wed Aug 13 16:55:26 PDT 2014
On Thu, 31.07.14 16:55, Ivan Shapovalov (intelfx100 at gmail.com) wrote:
> Hello all,
>
> I'm trying to start from an udev rule a templated systemd unit, whose instance
> should be a properly escaped device node path (so that %i.device would represent
> an existing unit). Which udev specifier should I use for this?
>
> Or, in more clear wording:
>
> given the rule:
>
> ACTION=="add", ..., TAG+="systemd", ENV{SYSTEMD_WANTS}+="foo@$some_specifier.service"
>
> and the unit foo at .service:
>
> [Unit]
> After=%i.device
> BindsTo=%i.device
> ...
>
> Which $some_specifier should I use in the udev rule to get %i.device in
> my service file to refer to the valid and corresponding device unit?
>
> The closest match I've got is "sys%p", but it does not work because dashes are not
> escaped, and I get
> "sys-devices-pci0000:00-0000:00:1d.0-usb4-4-1-4-1.2.device"
> instead of
> "sys-devices-pci0000:00-0000:00:1d.0-usb4-4\x2d1-4\x2d1.2.device"
> and so on.
Can you invoke systemd-escape from the udev rule?
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list