Запуск определенных событий для устройств

Я хотел бы знать, можно ли настраивать специальные триггерные события для устройств при подключении и / или отключении от системы «на лету» без необходимости настраивать их каждый раз, когда устройство подключено или удалено. Триггер, который смотрит

/dev/input/event 

поэтому он знает, когда устройство подключено или не подключено, и оно либо запускает, либо убивает демона для этого устройства во время использования.

Вот что я собираюсь использовать триггерные события;

У меня есть контроллер геймпада, который мне нравится использовать для игры, и каждый раз, когда я его использую, мне всегда приходится возиться с конфигурацией для него каждый раз, когда я подключаю его, чтобы он работал для конкретной конфигурации контроллера. Но также в некоторых случаях события, когда контроллер случайным образом отключает и повторно соединяет его, он сбрасывает и игнорирует конфигурацию, которую я установил для него, то есть мне пришлось повторно настроить его снова. Поэтому я хочу, чтобы он повторно запускал мои конфигурации, вызывая его из сценария, когда он обнаруживает, что устройство подключено к предварительно настроенному файлу конфигурации. Будет ли что-то в

 /etc/udev/rules.d 

Я мог бы создать, чтобы сделать это, как правило? Конфигурационный файл для моего геймпада хранится в

 ~/.config/ds4drv.conf 

и также может быть вызван в

 /etc/ds4drv.conf 

Я бы хотел, чтобы он мог проверять и применять этот файл конфигурации каждый раз, когда он обнаруживает, что геймпад включен или отключен. В конфигурации есть опция для запуска демона, который может заблокировать PID-файл внутри

 /tmp/ds4drv.pid 

когда он работает. Предварительно проверьте, запущен ли процесс демон, если нет, запустите его и примените конфигурацию из файла конфигурации при обнаружении устройства геймпада. Иногда он может столкнуться с играми Steam, когда вы играете, и заставляйте меня снова проверять флажок, чтобы включить контроллер, что может быть очень проблематичным, когда вы просто хотите, чтобы он продолжался там, где он остановился, если контроллер теряет связь на мгновение перед повторным подключением и отсутствием чтения из файла конфигурации.

  • sshfs не будет использовать ~ / .ssh / config (на Linux Mint 15)
  • Как исправить мою установку llvm?
  • Использование изображения в качестве фона в filebrowser Nemo для каталогов, которые не являются домашним каталогом
  • Как включить экранную клавиатуру на экране блокировки Mint Linux?
  • Графическая проблема Интерфейс Mint Cinamon
  • Увеличение моего расширенного раздела влево
  • Поддерживает ли Linux Mint PAE для 32-битной Cinnamon и MATE?
  • polkit-gnome-authentication-agent-1 не запускается автоматически после обновления
  • One Solution collect form web for “Запуск определенных событий для устройств”

    udev – ваш друг. вы можете добавить файл с called 99-gamepad.rules в /etc/udev/rules.d/

    этот файл должен содержать строку, похожую на следующую

     DRIVER=="usb",ATTRS{idProduct}=="c52b",RUN+="/path/to/your_script.sh" 

    Вы можете найти ATTRS используя udevadm :

     udevadm info -a -p /sys/bus/usb/devices/3-1.5 

    замените /sys/bus/usb/devices/3-1.5 на путь к вашему USB-устройству в sys, в качестве альтернативы вы можете использовать путь в /dev/ . Обычно я просто пробую несколько путей, пока не найду что-то, что соответствует моему устройству.

    если вы знаете путь к устройству в /dev вы можете использовать следующую строку:

     udevadm info -a -p $(udevadm info -q path -n /dev/input/js0) 

    Вот справочная страница udev, объясняющая, как написать правило.

    Также посмотрите страницу udev ArchWiki.

    Linux и Unix - лучшая ОС в мире.