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.