执行parted会触发udev,fdisk不会

执行parted会触发udev,fdisk不会

我处于服务器环境(RHEL 7.2 或类似版本)中,我注意到当我运行 parted print 时,我的 udev 规则被调用(创建我的自定义符号链接),即使我只是列出分区。当我运行 fdisk 时,不会触发 udev。

我 strace -f 都执行了这两个操作,只注意到两个可疑的项目:1)parted 打开了一堆 udev 的东西(但我无法真正判断它是否调用了任何东西),2)parted 首先在 RO 中打开设备,然后,后来,RW。我不确定是否有一些 udev 挂钩。

有人知道可能涉及此的 systemd/udevd 片段吗?

谢谢!

答案1

好的...我想通了... (exec 5<> /dev/sda) 触发 udev 评估 sda 的规则。只读不会触发它,因此 udev 在某个地方使用 inotify 或 kprobe,或某种设备侦听器在读写时触发。可能在关闭时触发。

(这是部分答案,因为很清楚哪些操作会导致触发,但我想保留这个问题,以防有人可以准确地阐明直接告诉 udev 触发的部分......就像 systemd/udevd 是拦截打开/关闭,或者是否涉及 inotify 或 kprobe。)

相关内容