Arch-Linux
udev規則沒有被使用?
我正在設置
udev
以在插入和移除外部 USB 硬碟驅動器時處理它(尚未安裝)。到目前為止,我已經制定了兩個新規則/etc/udev/rules.d/10-local.rules
來記錄將磁碟添加/刪除到文件中:SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/echo 'inserted lacie' >> /home/herman/udev_file" SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="remove", RUN+="/bin/echo 'removed lacie' >> /home/herman/udev_file"
我已經啟動了
udevd
守護程序並多次重新插入硬碟驅動器,但/home/herman/udev_file
從未創建過 . 在規則中,我使用udevadm info -a -n /dev/sdb
了相關硬碟驅動器命令中的密鑰。我在這裡做錯了什麼?正在檢測磁碟,我可以做到mount
。任何幫助表示讚賞。
udev
將日誌資訊輸出到/var/log/messages
,但預設情況下它只記錄錯誤,並且碰巧您構造了一個命令,該命令沒有執行您想要的操作,但也不會出錯。重定向由您的>>
shell 處理,並且 udev 不會通過 shell 執行命令,因此它實際上是在執行二進製文件/bin/echo
並將其傳遞給 arguments'inserted lacie' >> /home/herman/udev_file
。如果您更改 udev 以記錄更多資訊(編輯/etc/udev/udev.conf
並添加行udev_log="info"
),您將看到它執行該命令,並且輸出為'inserted lacie' >> /home/herman/udev_file
就個人而言,我更喜歡製作簡短的 shell 腳本來做我想做的事,這樣我就可以在不重新啟動的情況下編輯它們
udev
,但你也可以使用/bin/sh -c
它來執行你的命令,這樣它就會處理重定向:SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/sh -c '/bin/echo inserted lacie >> /home/herman/udev_file'"