Linux makinemde bir cihaz taktığımda bir komut dosyası çalıştırmak istiyorum. Örneğin, xinput
fareyle veya belirli bir sürücüde bir yedekleme komut dosyasını çalıştırın.
Bu konuda pek çok yazı gördüm, en son burada ve burada . Ama çalışmasını sağlayamıyorum.
İşte en azından bir tür yanıt almaya çalışırken bazı basit örnekler.
/etc/udev/rules.d/test.rules
#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
/usr/local/bin/test.sh
#!/usr/bin/env bash
echo touched >> /var/log/test.log
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
echo ${DEVICE} >> /var/log/test.log
fi
Kurallar klasörü tarafından izlenir inotify
ve hemen aktif olmalıdır. Klavyemi, fareyi, tabletimi, memorystick'i ve usb sürücümü değiştirmeye devam ediyorum ama hiçbir şey. Hiçbir günlük dosyasına dokunulmadı.
Şimdi, en azından bir şeyin işe yaradığını bilmenin en basit yolu ne olurdu? Çalışmakta olan bir şeyle çalışmak, olmayan bir şeyden daha kolaydır.
3.5.0-23-generic
.
udevadm trigger
Yeni kuralı uygulamak için bir cihazı çalıştırdınız veya taktınız mı?