GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo delle regole udev per eseguire uno script all'inserimento USB

Ho avuto lo stesso problema. Questo ha funzionato per me:

Prova a copiare il tuo script in /usr/local/bin e cambia la directory nel tuo .rules file.

Inoltre, non so cosa sia SYSFS, ma preferirei usare le proprietà ATTR.

La riga seguente è il contenuto del mio .rules file:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/backup.sh"

notify-send richiede l'accesso al tuo bus di sessione DBus, che non può avere per due motivi:

  • Nessuna informazione sulla sessione. Quando viene avviato da udev, il tuo script non sa nulla su dove hai effettuato l'accesso o se hai effettuato l'accesso. Il multi-seat con X11 è ancora complicato, ma il cambio utente funziona sia per X11 che per le sessioni console. Molte persone usano anche SSH, VNC e NX sulla rete.

    (DISPLAY=:0 funzionerebbe la metà delle volte, ma è ancora indovinare nella migliore delle ipotesi.)

  • Negato dal criterio DBus. Anche se il tuo script trova in qualche modo la tua sessione X11, non sarà in grado di inviare notifiche perché lo script viene eseguito come root invece del tuo account utente.


Linux
  1. Come eseguire uno script??

  2. Esecuzione di script di shell in parallelo

  3. Script bash:utilizzo del comando script da uno script bash per la registrazione di una sessione

  4. Esegui lo script bash come demone

  5. Come posso eseguire automaticamente il mio script node js utilizzando lo scheduler sul server

Suggerimenti per l'utilizzo di tmux

Come eseguire uno script Python in PHP

Come eseguire uno script Bash

Script all'avvio?

Esegui lo script bash dopo il login

Udev:rinominare la mia interfaccia di rete