GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So führen Sie ein Skript aus, wenn USB-Geräte mit UDEV angeschlossen oder entfernt werden

Der Beitrag beschreibt Schritte zum Erstellen von UDEV-Regeln, die ein bestimmtes Skript ausführen, wenn ein USB-Gerät angeschlossen oder entfernt wird. Wir können das udevadm-Tool verwenden, um die Informationen und Eigenschaften anzuzeigen, wenn ein Gerät angeschlossen oder entfernt wird. Mit dem „subsystem-match=SUBSYSTEM ” Wir können die Art des angeschlossenen/entfernten Geräts bestimmen.

1. Beispielsweise können Sie in diesem Fall mit einem USB-SUBSYSTEM den folgenden Befehl ausführen:

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

2. Schließen Sie jetzt das USB-Gerät an oder entfernen Sie es, um ein UDEV-Ereignis auszulösen.

3. Unten sehen Sie ein Ausgabebeispiel, die Informationen mit „<---“-Zeilen sind wichtige Informationen, die Sie berücksichtigen sollten, um die Regeln festzulegen.

# 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. Mit dem obigen Beispiel können Sie die Regeln zum Ausführen von Skripten in /etc/udev/rules.d/ erstellen . Beispielsweise können Sie eine neue Datei "5-usbstick-font.rules" erstellen ", mit einer ähnlichen Syntax wie :

# 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. Laden Sie die UDEV-Regel neu, indem Sie den folgenden Befehl ausführen.

# udevadm control --reload

Wenn Sie jetzt das USB-Gerät anschließen oder wieder entfernen, wird das benutzerdefinierte Skript (wie run-start.sh oder run-stop.sh) ausgeführt.


Cent OS
  1. Wie führt man benutzerdefinierte Skripts auf dem USB-Geräte-Plug-in aus?

  2. Wie löst man ein Ereignis im Shell-Skript aus, wenn ein USB-Gerät entfernt wird?

  3. Wie man ein Skript ausführt??

  4. CentOS/RHEL – So führen Sie ein Skript oder einen Befehl aus, wenn sich ein Benutzer von der SSH-Sitzung abmeldet

  5. Wie führe ich ein Shellscript aus, wenn ich ein USB-Gerät anschließe?

So führen Sie ein Bash-Skript aus {7 Methoden}

So konfigurieren Sie Netzwerkschnittstellen mit NMCLI auf Centos 7.6

So erstellen und führen Sie ein Shell-Skript in CentOS 8 aus

So führen Sie ein Python-Skript in PHP aus

So führen Sie ein Bash-Skript aus

Wie zeigt man eine Benachrichtigung an, wenn ein USB-Gerät eingesteckt wird?