Linux makinemde bir cihaz taktığımda bir komut dosyası çalıştırmak istiyorum. Örneğin, xinputfareyle 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 inotifyve 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 triggerYeni kuralı uygulamak için bir cihazı çalıştırdınız veya taktınız mı?