用UDEV规则操纵内核设备名称



我有bash脚本,它将内核设备名称作为参数,并输出一个可以用作新内核设备名称的新字符串。

Example: 
bash myScript sda
output: sdaa

我为此目的使用自定义UDEV规则。

我不确定如何将参数传递到bash脚本中并使用UDEV规则捕获结果输出。

这是我尝试过的一些规则,

KERNEL=="sda", RUN+="/bin/bash /etc/udev/myScript '%E{KERNEL}'", NAME="%c"
KERNEL=="sda", IMPORT{program}="/bin/bash /etc/udev/myScript --export %k", NAME="%c"
KERNEL=="sda", IMPORT{program}="/bin/bash /etc/udev/myScript --import %k --export %c", NAME="%c"

我使用回声将字符串输出到标准输出。

设备属性可以通过设备属性(%k-设备内核名称,%p-设备的DevPath)传递给脚本。您可以在所有可用的设备属性中参考UDEV的手册页。

Shell脚本的

和STD输出可通过"%c"提供给UDEV规则。。

此规则如何:

KERNEL=="sda", RUN+="/bin/bash /etc/udev/myScript %k", NAME="%c"

无法更改设备节点的名称。只能创建其他符号链接。

如果将值分配给NAME键,则只能更改网络接口的名称。

请参阅Systemd UDEV文档。旧的独立udevd

也一样

相关内容

  • 没有找到相关文章

最新更新