Я хочу выполнить скрипт, когда я подключаю устройство к моей машине с Linux. Например, запустите xinput
мышь или резервную копию на определенном диске.
Я видел много статей по этому вопросу, в последнее время здесь и здесь . Но я просто не могу заставить его работать.
Вот несколько простых примеров, пытающихся получить хоть какой-то ответ.
/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
Папка правил отслеживается inotify
и должна быть активна немедленно. Я продолжаю подключать клавиатуру, мышь, планшет, карту памяти и USB-накопитель, но ничего. Файл журнала не тронут.
Теперь, какой самый простой способ хотя бы узнать, что что-то работает? Легче работать с чем-то, что работает, чем с чем-то, что нет.
3.5.0-23-generic
.
udevadm trigger
или подключаете устройство, чтобы применить новое правило?