Bagaimana cara memeriksa apakah aturan udev dipecat?

11

Saya mencoba memperkenalkan diri dengan udev, di bawah Ubuntu 13.10.

Inilah aturan 95.usbbackup.rules sederhana pertama saya:

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

dan di sini adalah skrip (yang telah chmodded + x) my_backup.sh:

#!/bin/bash
touch /tmp/test

Tidak ada yang terjadi ketika saya mencolokkan drive eksternal. Bagaimana saya bisa mengecek (log, perintah, apa saja) jika aturan dipecat?

Terima kasih banyak

pouzzler
sumber
1
Saya pikir maksud Anda SUBSYSTEMS=="usb". Yaitu. dua kali lipat == yang menguji kesetaraan daripada tunggal = yang memberikan nilai pada kunci.
Lqueryvg

Jawaban:

5

Saya cukup yakin ini harus berhasil. Apakah Anda memuat ulang aturan udev setelah mengedit aturan?

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

Redsandro
sumber
Saya membuat aturan yang lebih sempit: KERNEL == "sdb", yang berfungsi. Apakah udev hanya memperlakukan aturan yang mengidentifikasi beberapa perangkat keras secara unik?
pouzzler
Tidak, coba KERNEL!="sdz*" dan Anda harus mendapatkan semuanya (kecuali sdz [1-9])
Redsandro
Ini tidak benar-benar menjawab pertanyaan. Bagaimana Anda tahu kalau aturannya dipicu?
DanielSank
Anda tahu karena skrip dijalankan. Anda dapat membuatnya menulis ke file log. Juga udevadm monitor
Redsandro
4

Anda dapat memberikan perintah sebagai root seperti ini:

monitor udevadm

Ini akan menunjukkan kapan aturan telah dipecat.

user2703782
sumber
4
udevadm monitor hanya menunjukkan acara udev, tetapi tidak jika aturan yang sesuai dipecat. Namun, Anda bisa mencari acara yang seharusnya memicu aturan, tetapi kemudian Anda tidak tahu apakah aturan Anda berfungsi.
F.Raab
2

Saya menjalankan kernel 3.0.35, tetapi berikut ini berfungsi untuk saya.

Untuk mendapatkan jalur untuk perangkat Anda dapat melakukan sesuatu seperti ini:

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

Anda akan mendapatkan informasi lebih banyak dari yang Anda butuhkan tetapi Anda tertarik pada DEVPATH. Kemudian untuk melihat aturan udev apa yang dijalankan Anda menjalankan ini:

udevadm test DEVPATH

Saya tidak berpikir ini benar-benar menjalankan aturan, dokumentasi mengatakan ini 'mensimulasikan' acara untuk perangkat yang diberikan. Untuk mendapatkan informasi lebih lanjut, lihat halaman manual ini: https://www.freedesktop.org/software/systemd/man/udevadm.html

JSunderland
sumber