疑!小編前一篇文章不是才寫一篇 『 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
			
 阿麥斯音樂棒棒糖 
 維力 素飄香 野菜多 素排骨雞 素紅燒牛肉 麻辣燙 麻油當歸枸杞 蔘湯麵 素食 泡麵 單包 
 水壺背袋 水壺網袋 水瓶袋 多色可選 戶外郊遊 登山野餐 可放手機 水壺背帶 
 我最牛-綜合牛角酥餅乾