Автозапуск сценария после того, как я подключил или отключил USB-устройство

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

22
задан 27 August 2013 в 01:49

2 ответа

Благодаря MinimusHeximus и соответствующим факторам потока он упомянул в его комментарии моему подобному вопросу, я думаю, что могу теперь предложить Вам следующий ответ.

Вам будут нужны 5 (пять) файлов для такого USB-устройства следующим образом, просто заполняя соответствующие значения <fortheseparts>:

/etc/udev/rules.d/00-usb-<yourdevice>.rules

ACTION=="add", ATTRS{idVendor}=="<yourvendorid>", ATTRS{idProduct}=="<yourproductid>", ENV{XAUTHORITY}="/home/<user>/.Xauthority", ENV{DISPLAY}=":0", OWNER="<user>", RUN+="/usr/local/bin/usb-<yourdevice>-in_udev"    
ACTION=="remove", ATTRS{idVendor}=="<yourvendorid>", ATTRS{idProduct}=="<yourproductid>", ENV{XAUTHORITY}="/home/<user>/.Xauthority", ENV{DISPLAY}=":0", OWNER="<user>", RUN+="/usr/local/bin/usb-<yourdevice>-out_udev"

/usr/local/bin/usb-<yourdevice>-in_udev

#!/bin/bash
/usr/local/bin/usb-<yourdevice>-in &

/usr/local/bin/usb-<yourdevice>-in

#!/bin/bash
sleep 1
<yourbashscriptcode>

/usr/local/bin/usb-<yourdevice>-out_udev

#!/bin/bash
/usr/local/bin/usb-<yourdevice>-out &

/usr/local/bin/usb-<yourdevice>-out

#!/bin/bash
sleep 1
<yourbashscriptcode>

Примечания:

  1. Можно получить значения <yourvendorid> и <yourproductid> путем ввода команды lsusb в Терминале - когда Ваше USB-устройство будет включено - который перечислит все Ваши в настоящее время доступные USB-устройства, как Bus 003 Device 002: ID 8087:07da Intel Corp., где 8087 VendorID, и 07da является ProductID.
  2. И <yourdevice> может быть любое произвольное имя, которое можно выбрать для USB-устройства, например, я принял решение использовать родовое название "клавиатура" при создании таких файлов для моей клавиатуры USB, которая потребовала применения другой раскладки клавиатуры каждый раз, когда это включается.
  3. В некоторых сценариях не может быть необходимо использовать ACTION=="remove" строка в udev управляет файлом и следовательно связанными 2 (двумя)"out"файлы, когда Вы ничего не должны сделать (например, обратить изменение, внесенное, когда устройство включается) после того, как устройство включается.
17
ответ дан 27 August 2013 в 01:49

Файловый менеджер SpaceFM позволяет это. См. Настройки автоматического запуска , например Автоматический запуск | На горе или Автозапуск | На размонтировании .

0
ответ дан 27 August 2013 в 01:49

Другие вопросы по тегам:

Похожие вопросы: