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
SUBSYSTEMS=="usb"
. Yaitu. dua kali lipat==
yang menguji kesetaraan daripada tunggal=
yang memberikan nilai pada kunci.Jawaban:
Saya cukup yakin ini harus berhasil. Apakah Anda memuat ulang aturan udev setelah mengedit aturan?
udevadm control --reload-rules && udevadm trigger
sebagai root.sumber
KERNEL!="sdz*"
dan Anda harus mendapatkan semuanya (kecuali sdz [1-9])udevadm monitor
Anda dapat memberikan perintah sebagai root seperti ini:
Ini akan menunjukkan kapan aturan telah dipecat.
sumber
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.Saya menjalankan kernel 3.0.35, tetapi berikut ini berfungsi untuk saya.
Untuk mendapatkan jalur untuk perangkat Anda dapat melakukan sesuatu seperti ini:
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:
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
sumber