![udev 規則不起作用](https://rvso.com/image/1395270/udev%20%E8%A6%8F%E5%89%87%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在嘗試為 USB 驅動器插件編寫 udev 規則。我想首先將其安裝到/media
然後運行腳本/usr/local/bin/script.sh
。當我插入 USB 時,它甚至不會按照此規則安裝裝置。但是,如果我在終端機中手動鍵入 RUN 中的部分,它將安裝並執行腳本。
規則文件說:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh"
這是在規則的 RUN 部分執行兩個命令的正確方法嗎?
答案1
這不是執行 2 個命令的正確方法。我也不喜歡你的規則的匹配部分,但我將在這個例子中保留它。你可以這樣做:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/sh -c '/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh'"
或者
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/", RUN+="/usr/local/bin/script.sh"
但就你而言,為什麼不將mount
命令移到腳本中呢?