首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试udev规则(in /etc/udev/ rule es.d/.)

如何调试udev规则(in /etc/udev/ rule es.d/.)
EN

Unix & Linux用户
提问于 2015-05-04 00:29:20
回答 5查看 75.4K关注 0票数 28

我正在创造一条新的基本规则

代码语言:javascript
复制
/etc/udev/rules.d/10-myrule.rules

内载:

代码语言:javascript
复制
KERNEL!="sdb*", GOTO="auto_mount_end"
ACTION=="add", RUN+="/usr/bin/mount /dev/sdb1 /media"
LABEL="auto_mount_end"

我保存、重新启动并插入了SD卡(由/dev/sdb1识别,我在dmesg中看到它),但什么也没有发生。当我手动执行mount /dev/sdb1 /media时,它可以工作。

如何排除/调试这样的udev规则?

注意:我使用的是ArchLinux,但是在任何发行版上都应该是相同的?

EN

回答 5

Unix & Linux用户

发布于 2015-06-05 08:25:01

更新

  • 参考资料: udev_237 - 人类udev (Ubuntu_18.04) RUN{type} ︙ 注意,在udev规则中不允许运行访问网络或挂载/卸载文件系统的程序,因为默认沙箱是在systemd-udevd.service上强制执行的。

原始答案调试提示对其他udev规则应用程序有效。

  • 10-如jasonwryan所述,使用高编号(90's好)。所以你的规则不会被另一个规则推翻。
  • 使用最小的钥匙,正如你真正需要的。例如,!= & GOTO/LABEL直接使用== ACTION=="add“、KERNEL=="sdb*”、RUN+=“/usr/bin/挂载/dev/sdb 1 /media”
  • 您的目标是使用固定命令的sdb1,使用KERNEL=="sdb1"最小化盲匹配。
  • 我发现创建一个影子调试规则很有用,我调用了影子,因为我总是把它放在同一个文件中,所以当我需要它时我会使用它。ACTION==“添加”,KERNEL=="sdb*",RUN+="/bin/sh -c 'echo == >> /home/user/Desktop/udev-env.txt;env >> /home/user/Desktop/udev-env.txt‘#ACTION==“添加,KERNEL=="sdb*",RUN+=”/usr/bin/装入/dev/sdb1 /media“备注:
    • 创建udev-env.txt之后,规则就会被触发。对应于一个匹配节点的行==。该文件中记录的ENV可能是两个或更多节点之间的混合,几乎同时创建,这是一个stdout缓冲问题。
    • 在此调试中出现的一些环境变量可能不会用于条件,因为当时udev处理匹配它们还没有填充(根据以前的规则)。参见https://www.suse.com/support/kb/doc/?id=000016106 (注释中@clonejo提到)

  • 使用udevadm monitor -uudevadm test ...udevadm trigger ...验证哪些规则处理了事件。
  • 在脚本内部,您可以通过保存它们的返回值( stdout & stderr消息)来生成调试日志和捕获失败的命令。
票数 21
EN

Unix & Linux用户

发布于 2020-09-05 00:21:26

此命令将允许您观察规则的执行情况:

代码语言:javascript
复制
udevadm control --log-priority=debug
journalctl -f

(并通过udevadm control --log-priority=info将其恢复到正常水平)

票数 9
EN

Unix & Linux用户

发布于 2015-06-25 16:26:53

我想你要找的命令是udevadm。您将分别使用triggertest参数来触发udev事件的重新扫描,并测试特定事件。

当我在EL 7中使用新的网络设备命名时,我很难学会这一点。祝你好运!

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/200194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档