Есть ли способ запускать скрипт каждый раз, когда я вставляю USB-модем?

Есть ли способ запускать скрипт каждый раз, когда я вставляю USB-модем?

Я хотел бы, чтобы скрипт оболочки выполнялся каждый раз, когда я подключаю USB-модем.

Как бы я это сделал?

решение1

Этого можно добиться с помощью некоторых правил udev, как предложил @Rinzwind.

Во-первых, сохраните ваш скрипт в месте, доступном другим пользователям. Например, вы можете сохранить его как /usr/local/bin/script.sh.

Теперь сделайте скрипт доступным для других.

sudo chmod 555 /usr/local/bin/script.sh

Теперь подключите свой USB-модем и запустите lsusb. Ниже приведен пример вывода:

$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 0fcf:1008 Dynastream Innovations, Inc. Mini stick Suunto
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Найдите строку с именем вашего модема в конце. Теперь найдите часть около середины в формате ID XXXX:####. Части XXXXи ####будут,Идентификатор поставщикаиИдентификатор устройствасоответственно.

Для этого примера для третьей строки, которая читается как … ID 0fcf:1008 Dynastream …, идентификатор поставщика — 0fcf, а идентификатор устройства — 1008. Ваше устройство будет иметь разные значения для этих идентификаторов.

Теперь мы будем использовать эти идентификаторы для создания правила для udev.

Теперь создайте правило для этого устройства с помощью udev.

Создайте файл правил с

sudo nano /etc/udev/rules.d/90-local.rules

Добавьте следующую строку:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{vendor}=="0xXXXX", ATTRS{device}=="0x####", RUN+="/usr/local/bin/script.sh"

Заменить XXXXнаидентификатор поставщикаиз более раннего, и замените ####наКод товараиз более раннего.

Теперь заставьте udev перезагрузить свои правила (или вы можете пропустить этот шаг и перезагрузиться)

udevadm control --reload-rules
sudo service udev restart

И вы сделали!

Источники:Аналогичный вопрос на SU относительно правил udev,Создание правил udev

Связанный контент