ฉันค้นหา/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