Měl jsem stejný problém. Toto fungovalo pro mě:
Zkuste skript zkopírovat do /usr/local/bin
a změňte adresář ve vašem .rules
soubor.
Také nevím, co je SYSFS, ale raději bych použil vlastnosti ATTR.
Následující řádek je obsahem mého .rules
soubor:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/backup.sh"
notify-send
vyžaduje přístup k vaší relační sběrnici DBus, který nemůže mít ze dvou důvodů:
-
Žádné informace o relaci. Když skript spustí udev, neví nic o tom, kde jste přihlášeni nebo zda jste vůbec přihlášeni. Vícesedadlo s X11 je stále složité, ale přepínání uživatelů funguje pro X11 i konzolové relace. Mnoho lidí také používá SSH, VNC a NX přes síť.
(
DISPLAY=:0
fungovalo by polovinu času, ale to je stále hádání v nejlepším případě.) -
Odepřeno zásadou DBus. I když váš skript nějakým způsobem najde vaši relaci X11, nebude moci odesílat upozornění, protože skript běží jako
root
místo vašeho uživatelského účtu.