Esegui automaticamente uno script dopo aver collegato o scollegato un dispositivo USB

20

Che cosa posso fare per eseguire automaticamente uno script dopo aver montato / plugin o smontato / scollegato un dispositivo USB?

    
posta Radu Rădeanu 22.04.2013 - 17:15

2 risposte

16

Grazie a MinimusHeximus e ai rispettivi contributori a thread ha menzionato nel suo commento alla mia domanda simile, penso Ora posso offrirti la seguente risposta.

Hai bisogno di 5 (cinque) file per un dispositivo USB come segue, semplicemente compilando i rispettivi valori <fortheseparts> :

/etc/udev/rules.d/00-usb-<yourdevice>.rules

ACTION=="add", ATTRS{idVendor}=="<yourvendorid>", ATTRS{idProduct}=="<yourproductid>", ENV{XAUTHORITY}="/home/<user>/.Xauthority", ENV{DISPLAY}=":0", OWNER="<user>", RUN+="/usr/local/bin/usb-<yourdevice>-in_udev"    
ACTION=="remove", ATTRS{idVendor}=="<yourvendorid>", ATTRS{idProduct}=="<yourproductid>", ENV{XAUTHORITY}="/home/<user>/.Xauthority", ENV{DISPLAY}=":0", OWNER="<user>", RUN+="/usr/local/bin/usb-<yourdevice>-out_udev"

/usr/local/bin/usb-<yourdevice>-in_udev

#!/bin/bash
/usr/local/bin/usb-<yourdevice>-in &

/usr/local/bin/usb-<yourdevice>-in

#!/bin/bash
sleep 1
<yourbashscriptcode>

/usr/local/bin/usb-<yourdevice>-out_udev

#!/bin/bash
/usr/local/bin/usb-<yourdevice>-out &

/usr/local/bin/usb-<yourdevice>-out

#!/bin/bash
sleep 1
<yourbashscriptcode>

Note:

  1. Puoi acquisire i valori <yourvendorid> e <yourproductid> inserendo il comando lsusb in Terminale - quando il tuo dispositivo USB è collegato - che elencherà tutti i tuoi dispositivi USB attualmente disponibili, come Bus 003 Device 002: ID 8087:07da Intel Corp. , dove 8087 è il VendorID e 07da è il ID prodotto .
  2. E <yourdevice> può essere qualsiasi nome arbitrario che puoi scegliere per il tuo dispositivo USB, ad esempio, ho scelto di utilizzare il nome generico " keyboard " durante la creazione di tali file per la mia tastiera USB che richiedeva l'applicazione di un layout di tastiera diverso ogni volta che è collegato.
  3. In alcuni scenari, potrebbe non essere necessario utilizzare la riga ACTION=="remove" nel file delle regole udev e quindi i file 2 (due) " out " associati, quando non è necessario fare nulla ( es. inverti una modifica effettuata quando il dispositivo è collegato) dopo che il dispositivo è stato scollegato.
risposta data Sadi 20.09.2013 - 15:58
3

Il gestore file SpaceFM lo consente. Vedi le impostazioni Esegui automaticamente , ad esempio Auto Esegui | Sul monte o Esegui automaticamente | On Unmount .

    
risposta data jpfleury 15.05.2013 - 18:06

Leggi altre domande sui tag