应该如何重新加载 udev 规则,以便新创建的规则可以运行?
我正在运行 Arch Linux,但udevstart这里没有命令。
还检查了/etc/rc.d,那里没有 udev 服务。
Ign*_*ams 308
# udevadm control --reload-rules && udevadm trigger
Run Code Online (Sandbox Code Playgroud)
Gil*_*il' 81
Udev 使用inotify机制来监视在库和本地配置树(通常位于/lib/udev/rules.d和/etc/udev/rules.d)中的规则目录中的更改。因此,大多数情况下,当您更改规则文件时,您无需执行任何操作。
如果您正在做一些不寻常的事情,您只需要明确通知 udev 守护程序,例如,如果您的规则包含另一个目录中的文件。然后你可以使用通常的约定来要求守护进程重新加载它们的配置:发送一个SIGHUP ( pkill -HUP udevd)。或者您可以使用以下udevadm命令:udevadm control --reload-rules.
但是,请注意,不同版本的 udev 历来具有不同的触发器来自动重新加载规则。因此,如果有疑问,请致电udevadm control --reload-rules:无论如何它不会造成任何伤害。
udev 规则仅在添加设备时应用。如果您想将规则重新应用于已连接的设备,您需要明确地执行此操作,方法是udevadm trigger使用正确的选项调用以匹配其配置已更改的设备,例如udevadm trigger --attr-match=vendor='Yoyodyne' --attr-match=model='Frobnicator 300'.
小智 20
我添加这个是因为有一天我会需要它......再次。
有时您会得到以太网设备号和 MAC 地址的错误匹配。有时这真的很重要,例如在 VM 中运行并且每个设备分配到不同的 VLAN 时。
/etc/udev/rules.d/70-persistent-net.rules(或其等价物)udevadm control --reload-rules udevadm trigger --attr-match=subsystem=net 我很惊讶这是多么有效。
小智 14
我不确定这是否适用,这绝对是一篇较旧的帖子,但它在我的网络搜索 udev 信息中出现了很高的比例,所以我想我可以分享一些知识。
您可以为特定设备手动触发 udev 规则。这仅适用于与 redhat 相关的发行版(centos fedora 等等)
在规则文件 ( /etc/udev/rules.d/whateveryoucalledyourrules) 中进行相关更改后,您可以回显change到设备的 uevent。
echo change > /sys/block/devname/partname1/uevent
Run Code Online (Sandbox Code Playgroud)
这将强制仅读取此设备的 udev 规则。好多了,在我看来更有针对性。
| 归档时间: |
|
| 查看次数: |
513596 次 |
| 最近记录: |