我正在使用libusb
连接打印机。我正在编写一条规则,用于udev
在打印机断开连接时将其移除。我使用符号链接来指示设备。但是移除时,规则没有被触发。我该怎么办?
ATTRS{manufacturer}=="Zebra Technologies", ACTION=="add", RUN+="/usr/local/bin/reinitZebra.sh", SYMLINK+="usblp%k"
SYMLINK=="usblp%k", ACTION=="remove", RUN+="/usr/local/bin/reinitZebra.sh"
答案1
%k
(变量)不能用在规则匹配条件中。字符串替换
在编写可能处理多个类似设备的规则时,udev 的 printf 类字符串替换运算符非常有用。您可以简单地在任何赋值中包含这些运算符您的规则制定后,udev 将在执行时对其进行评估。
来源:编写 udev 规则作者:Daniel Drake (dsd)
直接使用相同的
add
条件(您选择了一条长路径):ATTRS{manufacturer}=="Zebra Technologies", ACTION=="remove", RUN+="/usr/local/bin/reinitZebra.sh"