GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menjalankan Script Saat Perangkat USB Dipasang atau Dilepas Menggunakan UDEV

Posting tersebut menguraikan langkah-langkah untuk membuat aturan UDEV yang menjalankan skrip tertentu saat perangkat USB dipasang atau dilepas. Kita dapat menggunakan alat udevadm untuk melihat informasi dan properti saat perangkat dipasang atau dilepas. Menggunakan “subsystem-match=SUBSYSTEM ” Kami dapat menentukan jenis perangkat yang dipasang/dilepas.

1. Misalnya, dalam hal ini dengan SUBSYSTEM USB, Anda dapat menjalankan perintah di bawah ini:

# udevadm monitor --kernel --property --subsystem-match=usb
monitor will print the received events for:
KERNEL - the kernel uevent

2. Sekarang, pasang atau lepaskan perangkat USB, untuk memicu peristiwa UDEV.

3. Di bawah ini adalah contoh output, informasi dengan baris “<---" merupakan informasi penting yang perlu diperhatikan untuk menetapkan aturan.

# udevadm monitor --kernel --property --subsystem-match=usb
monitor will print the received events for:
KERNEL - the kernel uevent
KERNEL[6147.486744] add /devices/pci0000:00/0000:00:0c.0/usb1/1-2 (usb)
ACTION=add             <--------------------------------------------------------- ACTION of the device
BUSNUM=001
DEVNAME=/dev/bus/usb/001/010
DEVNUM=010
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2
DEVTYPE=usb_device      
MAJOR=189
MINOR=9
PRODUCT=90c/1000/1100  <--------------------------------------------------------- ENV{PRODUCT}
SEQNUM=2192
SUBSYSTEM=usb          <--------------------------------------------------------- " SUBSYSTEM=="type_of_device"
TYPE=0/0/0

KERNEL[6147.489141] add /devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0
DEVTYPE=usb_interface
INTERFACE=8/6/80
MODALIAS=usb:v090Cp1000d1100dc00dsc00dp00ic08isc06ip50in00
PRODUCT=90c/1000/1100
SEQNUM=2193
SUBSYSTEM=usb
TYPE=0/0/0

KERNEL[6206.530205] remove /devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0 (usb)
ACTION=remove           <--------------------------------------------------------- ACTION of the device 
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0
DEVTYPE=usb_interface
INTERFACE=8/6/80
MODALIAS=usb:v090Cp1000d1100dc00dsc00dp00ic08isc06ip50in00
PRODUCT=90c/1000/1100   <--------------------------------------------------------- ENV{PRODUCT}
SEQNUM=2216
SUBSYSTEM=usb           <--------------------------------------------------------- " SUBSYSTEM=="type_of_device"
TYPE=0/0/0
KERNEL[6206.530551] remove /devices/pci0000:00/0000:00:0c.0/usb1/1-2 (usb)
ACTION=remove
BUSNUM=001
DEVNAME=/dev/bus/usb/001/010
DEVNUM=010
DEVPATH=/devices/pci0000:00/0000:00:0c.0/usb1/1-2
DEVTYPE=usb_device
MAJOR=189
MINOR=9
PRODUCT=90c/1000/1100
SEQNUM=2217
SUBSYSTEM=usb
TYPE=0/0/0

4. Menggunakan contoh di atas, Anda dapat membuat aturan untuk menjalankan skrip di /etc/udev/rules.d/ . Misalnya, Anda dapat membuat file baru "5-usbstick-font.rules ", dengan sintaks yang mirip dengan :

# cat /etc/udev/rules.d/5-usbstick-font.rules
ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="90c/1000/1100", RUN=="/bin/su godiego --command='/home/godiego/run-start.sh'"
ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="90c/1000/1100", RUN+="/bin/su godiego --command='/home/godiego/run-stop.sh'"

5. Muat ulang aturan UDEV dengan menjalankan perintah di bawah ini.

# udevadm control --reload

Sekarang, jika Anda memasang atau melepas perangkat USB lagi, skrip yang disesuaikan (seperti run-start.sh atau run-stop.sh) akan dijalankan.


Cent OS
  1. Cara mengatur nama perangkat khusus menggunakan udev di CentOS/RHEL 7

  2. CentOS/RHEL – Cara menjalankan skrip atau perintah ketika ada pengguna yang keluar dari sesi ssh

  3. Cara menonaktifkan akses tulis ke perangkat USB menggunakan alat "hdparm"

  1. Bagaimana cara menjalankan skrip Shell ketika file atau direktori berubah?

  2. Bagaimana saya bisa menjalankan skrip node js saya secara otomatis menggunakan penjadwal di server

  3. Menggunakan aturan udev untuk menjalankan skrip pada penyisipan USB

  1. Bagaimana cara menjalankan skrip ketika surat tiba di server surat? (Debian)

  2. Cara menjalankan skrip shell saat saya menyambungkan perangkat USB

  3. Cara menentukan USB Versi 1.1 atau 2.0