Perché la mia regola udev non funziona?


1

Ho bisogno di eseguire automaticamente il mio script /var/www/html/configWWWquando qualsiasi USB è collegato al mio Rasperry.

REGOLA DI UDEV - /etc/udev/rules.d/myRule.rules

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="****",
ATTR{idProduct}=="****", RUN+="/var/www/html/configWWW"

IL MIO SCRIPT /var/www/html/configWWW

#!/bin/bash
file="/media/pi/`ls /media/pi`/SymSif.xml"
if [ -f "$file" ]
then
        (
        echo "it works: $(date)" >> /home/pi/Desktop/test.txt
        )
else
        (
        echo "it does not works: $(date)" >> /home/pi/Desktop/test.txt
        )
fi

D'altra parte, se eseguo script da bash bash /var/www/html/configWWW, funziona!

Perché la mia regola udev non funziona come il mio comando bash?


Hai udevadm control --reload-rules && udevadm triggerricaricato
George Udosen il


Un altro punto è che devi usare ATTRSinvece che ATTRnella regola udev.
Mook765,

Ovviamente ho usato il controllo udevadm --reload-rules && trigger udevadm, dopo ogni modifica. Inoltre, ho cambiato file = "/ media / pi / ls /media/pi/SymSif.xml" in file = "/ media / pi / USB / SymSif.xml". E infine ho cambiato ATTRS invece di ATTR, ma non funziona ancora. Ma è sempre lo stesso stato. Se eseguo script da bash bash / var / www / html / configWWW, funziona!
Daniel

Risposte:


0

Meglio se potessi aggiungere udevadm info -a ...al post. Comunque, ecco alcune cose che mi aspetto:

  • Imposta il bit di autorizzazione dell'eseguibile dello script.
  • Modificare il nome file della regola in formato standard, ad esempio 99-alpha.rules
  • Chech fuori la deferenza tra SUBSYSTEMe SUBSYSTEMS, e tra ATTRe ATTRS.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.