Come verificare se una regola udev è stata attivata?


11

Sto cercando di familiarizzare con udev, sotto Ubuntu 13.10.

Ecco la mia prima semplice regola 95.usbbackup.rules:

ACTION=="add", SUBSYSTEMS="usb", RUN+="/usr/local/bin/my_backup.sh"

ed ecco lo script (che è stato chmodded + x) my_backup.sh:

#!/bin/bash
touch /tmp/test

Nulla accade quando inserisco le unità esterne. Come posso controllare (un log, un comando, qualsiasi cosa) se la regola viene attivata?

molte grazie


1
Penso tu voglia dire SUBSYSTEMS=="usb". Cioè Doppio == quali test per l'uguaglianza piuttosto che single = che assegna un valore a una chiave.
Lqueryvg

Risposte:


5

Sono abbastanza sicuro che questo dovrebbe funzionare. Hai ricaricato le tue regole udev dopo aver modificato le tue regole?

udevadm control --reload-rules && udevadm trigger come root.


Ho fatto una regola più stretta: KERNEL == "sdb", che funziona. Udev tratta solo regole che identificano un po 'l'hardware in modo univoco?
pouzzler

No, prova KERNEL!="sdz*" e dovresti ottenere tutto (tranne sdz [1-9])
Redsandro

Questo in realtà non risponde alla domanda. Come fai a sapere se le regole sono state attivate?
DanielSank

Sai perché viene eseguito lo script. Puoi farlo scrivere in un logfile. Anche udevadm monitor
Redsandro

4

Puoi dare un comando come root come questo:

monitor udevadm

Mostrerà quando una regola ha sparato.


4
udevadm monitor mostra solo gli eventi udev, ma non se è stata attivata una regola corrispondente. Tuttavia, puoi cercare l'evento che dovrebbe attivare la regola, ma non sai se la tua regola funziona.
F.Raab

2

Sto usando il kernel 3.0.35, ma il seguente funziona per me.

Per ottenere il percorso per il dispositivo puoi fare qualcosa del genere:

udevadm info --name /dev/sda1 --query all

Otterrete più informazioni del necessario ma siete interessati a DEVPATH. Quindi per vedere quali regole udev vengono eseguite, esegui questo:

udevadm test DEVPATH

Non penso che questo effettivamente esegua le regole, la documentazione dice che questo 'simula' gli eventi per il dato dispositivo. Per ulteriori informazioni, consulta questa pagina man: https://www.freedesktop.org/software/systemd/man/udevadm.html

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.