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?). 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
