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

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

2 ответа

Решение

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

Для такого USB-устройства вам потребуется 5 (пять) файлов, просто указав соответствующие значения. <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 "файлы, когда вам не нужно ничего делать (например, отменить изменения, сделанные, когда устройство подключено) после того, как устройство подключено.

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

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