On Mon, Apr 18, 2022 at 11:54 AM Vishal Verma <[email protected]> wrote: > > Older systemd was more tolerant of how unit names are passed in for > instantiated services via a udev rule, but of late, systemd flags > unescaped unit names, with an error such as: > > fedora systemd[1]: Invalid unit name > "daxdev-reconfigure@/dev/dax0.0.service" > escaped as "[email protected]" (maybe you should use > systemd-escape?). >
Does systemd-escape exist on older systemd deployments? Is some new systemd version detection or 'systemd-escape' detection needed in the build configuration to select the format of 90-daxctl-device.rules? > Update the udev rule to pass the 'DEVNAME' from env through an > appropriate systemd-escape template so that it generates the correctly > escaped string. > > Cc: Dan Williams <[email protected]> > Reported-by: Chunhong Mao <[email protected]> > Signed-off-by: Vishal Verma <[email protected]> > --- > daxctl/90-daxctl-device.rules | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/daxctl/90-daxctl-device.rules b/daxctl/90-daxctl-device.rules > index ee0670f..e02e7ec 100644 > --- a/daxctl/90-daxctl-device.rules > +++ b/daxctl/90-daxctl-device.rules > @@ -1 +1,3 @@ > -ACTION=="add", SUBSYSTEM=="dax", TAG+="systemd", > ENV{SYSTEMD_WANTS}="daxdev-reconfigure@$env{DEVNAME}.service" > +ACTION=="add", SUBSYSTEM=="dax", TAG+="systemd",\ > + PROGRAM="/usr/bin/systemd-escape -p [email protected] > $env{DEVNAME}",\ > + ENV{SYSTEMD_WANTS}="%c" > > base-commit: 97031db9300654260bc2afb45b3600ac01beaeba > -- > 2.35.1 >
