使用 udev run 写入 /dev/kmsg

使用 udev run 写入 /dev/kmsg

我编写了一个简单的 udev 规则来命名我的 USB 设备:

SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyUSB-ZStick-5G"

udev 提供了在某些事件上运行自定义脚本的方法(参考:

KERNEL=="sdb", RUN+="/usr/bin/my_program"

但是,我希望上述解决方案只是打印一些将显示在dmesg.这并不复杂,不需要单独的脚本。

以下是我理想中希望能完成的工作:

SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyUSB-ZStick-5G", RUN+="echo 'Made symlink: ttyUSB-ZStick-5G' > /dev/kmsg"

关于如何做到这一点的想法?

答案1

作为手动的解释:

程序名称和后面的参数用空格分隔。单引号可用于指定带有空格的参数。

传递给的字符串RUN不会被送入 shell。它只是通过粗略的引用机制在空白处进行分割。如果要执行重定向,则需要调用 shell。

… RUN+="sh -c 'echo Made symlink: ttyUSB-ZStick-5G > /dev/kmsg'"

调用脚本会更清晰。

相关内容