【问题标题】:How to trigger a script with udev when connecting sda, but NOT sda1-x连接sda时如何使用udev触发脚本,但不是sda1-x
【发布时间】:2012-06-19 15:07:50
【问题描述】:

在将 USB 驱动器连接到嵌入式系统时,我需要运行脚本。 我的想法是:

SUBSYSTEM=="block",ACTION=="add", KERNELS=="sd?",RUN+="/script param1 %k"

它需要使用任何 USB 棒运行,所以我无法使用供应商特定的参数。现在脚本使用 sd[a..][,1..] 执行,但它应该只在 sd[a..] 时执行 连接(_ 为 NULL)。 与?它在断开连接时工作,但在连接时,它为每个分区执行 有没有可能或者我必须在 Shell-Script 中解析它?

如果有人可以在这里帮助我,那就太好了。 (如果有人看到,我删除了问题:对不起,我想, ? 是最终的解决方案。但它也没有工作。

这里是 udevadm info --attribute-walk -name /dev/sda1 的输出

  looking at device '/devices/platform/fsl-ehci.1/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sda/sda1':
    KERNEL=="sda1"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{partition}=="1"
    ATTR{start}=="63"
    ATTR{size}=="1526112"
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="4294935040"
    ATTR{stat}=="       0        0        0        0        0        0        0        0        0        0        0"
    ATTR{inflight}=="       0        0"

  looking at parent device '/devices/platform/fsl-ehci.1/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sda':
    KERNELS=="sda"
    SUBSYSTEMS=="block"
    DRIVERS==""
    ATTRS{range}=="16"
    ATTRS{ext_range}=="256"
    ATTRS{removable}=="1"
    ATTRS{ro}=="0"
    ATTRS{size}=="15656960"
    ATTRS{alignment_offset}=="0"
    ATTRS{discard_alignment}=="0"
    ATTRS{capability}=="51"
    ATTRS{stat}=="       1        0        8        4        0        0        0        0        0        4        4"
    ATTRS{inflight}=="       0        0"

【问题讨论】:

    标签: linux udev


    【解决方案1】:

    当使用/dev/sd??* 调用脚本时,让脚本退出怎么样?

    【讨论】:

    • 我现在这样做,是的.. 但它在我眼中并不优雅。
    【解决方案2】:
    SUBSYSTEM=="block", ACTION=="add", KERNELS=="sd*[!0-9]", RUN+="/script param1 %k"
    

    sd* 将匹配任何字符,但[!0-9] 将排除分区号,因此您只剩下块设备。

    至少在 CentOS 6 系统上,/lib/udev/rules.d 中有很多规则。规则文件 60-persistent-storage.rules 定义了上述规则。

    【讨论】:

      【解决方案3】:

      简单地说:

      SUBSYSTEM=="block", ACTION=="add", KERNELS=="sd?",  DEVTYPE="disk", RUN+="/script param1 %k"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-05
        • 1970-01-01
        • 1970-01-01
        • 2019-12-28
        相关资源
        最近更新 更多