J'ai eu le même problème. Cela a fonctionné pour moi :
Essayez de copier votre script dans /usr/local/bin
et changez de répertoire dans votre .rules
fichier.
De plus, je ne sais pas ce qu'est SYSFS, mais je préférerais utiliser les propriétés ATTR.
La ligne suivante est le contenu de mon .rules
fichier :
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/backup.sh"
notify-send
nécessite l'accès à votre bus de session DBus, ce qu'il ne peut pas avoir pour deux raisons :
-
Aucune information sur la séance. Lorsqu'il est lancé par udev, votre script ne sait rien sur l'endroit où vous êtes connecté ou si vous êtes connecté du tout. Le multi-siège avec X11 est toujours délicat, mais le changement d'utilisateur fonctionne à la fois pour les sessions X11 et console. De nombreuses personnes utilisent également SSH, VNC et NX sur le réseau.
(
DISPLAY=:0
fonctionnerait la moitié du temps, mais c'est encore deviner au mieux.) -
Refusé par la politique DBus. Même si votre script trouve d'une manière ou d'une autre votre session X11, il ne pourra pas envoyer de notifications car le script est exécuté en tant que
root
au lieu de votre compte utilisateur.