1. Home
  2. /
  3. Web technology
  4. /
  5. Linux
  6. /
  7. [ Linux ] –...

[ Linux ] – 好玩的 udev 事件偵測 插入usb觸發指定程式

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 3,平均評等: 5]

疑!小編前一篇文章不是才寫一篇 『 SHELL SCRIPT CHECK USB DEVICE 透過SHELL SCRIPT判斷USB設備,執行特定程式 』,為什麼要再寫一篇一樣的東西;事實上是因為功能需求是一樣,只是觸發的機制不一樣 上一篇是排程觸發,這一篇寫的是事件觸發。

新增一個客制化的udev規則

指令:cd /etc/udev/rules.d/
touch test.rules
新增以下內容
ACTION==”add”, SUBSYSTEM==”usb”, ATTRS{idVendor}==”0303″, ATTRS{idProduct}==”1001″, RUN+=”/usr/bin/at -M -f/check.sh now”

說明:
ACTION==”add” <=新建立的 (usb插入時觸發)
SUBSYSTEM==”usb” <=只偵測 usb
ATTRS{idVendor}==”0303″ <=廠商編號
ATTRS{idProduct}==”1001″ <=產品編號
RUN+=”/usr/bin/at -M -f/check.sh now” <=要執行的程式

特別說明:udev 中的 RUN 只能跑短行程的指令(卡在這邊卡超久),雖然可透過sleep來延長執行時間;但如果你的程式是需要長時間在背景跑的話就需要使用 at

安裝 at
指令:apt install at

安裝完後以上程式就可以正常的在背景執行。

參考資料:
https://wiki.debian.org/udev
http://reactivated.net/writing_udev_rules.html
https://unix.stackexchange.com/questions/108082/how-can-i-trigger-an-event-in-shell-script-when-an-usb-device-is-removed
https://wiki.archlinux.org/index.php/Udev_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
http://puremonkey2010.blogspot.com/2010/11/linux-at.html

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 3,平均評等: 5]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *