疑!小編前一篇文章不是才寫一篇 『 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
3M 日本原裝進口 速效型 防水噴霧 170ml 衣物 鞋子 皮革 透氣 防水 團購
水壺背袋 水壺網袋 水瓶袋 多色可選 戶外郊遊 登山野餐 可放手機 水壺背帶
垃圾桶 家用 客廳 臥室 辦公室 衛生間 大容量 高顏值 創意 收納 垃圾
阿麥斯音樂棒棒糖