ฉันค้นหา/lib/udev/rules.dตัวอย่างของกฎที่เกี่ยวข้องกับดิสก์ ในระบบอูบุนตูหนึ่งไฟล์กฎให้ตัวแปรสภาพแวดล้อมID_FS_UUID_ENCที่คุณสามารถใช้ในไฟล์กฎของตัวเอง
/etc/udev/rules.d/foodevice.rulesดังนั้นฉันใส่แฟ้มกฎที่กำหนดเองภายใต้ เนื่องจากมันไม่ได้ขึ้นต้นด้วยตัวเลขมันจะถูกรันที่ udev ในที่สุด Btw, udev daemon คอยเฝ้าดู/etc/udev/rules.dการเปลี่ยนแปลงซึ่งคุณไม่จำเป็นต้องรีสตาร์ทมันเมื่อมีการเปลี่ยนแปลงไฟล์
เนื้อหาของ/etc/udev/rules.d/foodevice.rulesคือ:
ACTION=="add", KERNEL=="sd*[!0-9]", ENV{ID_FS_UUID_ENC}=="FFFF-AAAF",
  RUN+="/usr/bin/sudo -u juser /home/juser/path/script.sh"
(นี่เป็นกฎเดียว - คุณต้องลบ newline หลังจากส่วนคำสั่ง ENV เนื่องจาก udev ไม่มีกลไกต่อเนื่องของบรรทัด)
โปรแกรมเริ่มต้นโดย udev บล็อก daemon - ดังนั้นจึงไม่ควรรันเป็นเวลานาน ฉันแก้ไขมันผ่านat- เช่นผ่านการแยกออกจากกระบวนการที่ทำงานจริง:
$ cat /home/juser/path/script.sh
#!/bin/sh
echo ~/path/mountcopystuff.sh | at now