udev управляют для присоединения/отсоединения usb, не инициировавшего

Для основанных на об/мин дистрибутивов Вы могли попробовать силы в создании надлежащих пакетов (это не это трудно...).

Преимущества надлежащего пакета - то, что Ваш диспетчер пакетов отслеживает программное обеспечение, и можно легко копировать установку в другом месте/на следующая машина. С надлежащим исходным пакетом, портирующим вперед (новая восходящая версия, bugfix патч, базовые библиотеки обновляются), легче, чем необходимость изобразить все это из царапины в следующий раз.

5
05.10.2014, 18:55
2 ответа

Необходимо гарантировать следующее:

  • Пути в RUN команда должна быть абсолютной
  • Файл должен быть исполняемым файлом
  • PATH среда ограничена в рамках выполнения Вас команда

Сначала добавьте этот файл сценария к /lib/udev/touch.sh

vim /lib/udev/touch.sh

в той записи файла:

#!/bin/bash
touch /tmp/test

сделайте это исполняемым файлом:

chmod +x /lib/udev/touch.sh

и измените свой файл правил на:

ACTION=="add", SUBSYSTEMS=="usb", RUN+="/lib/udev/touch.sh"

перезагрузите свои правила udev

udevadm control --reload-rules

Это прочитает Ваши правила в /lib/udev/rules.d/* снова. Изменения не будут применяться до сих пор.

Обратите внимание, что udev выполняет Ваш сценарий с уменьшенным PATH среда. Необходимо удостовериться, чтобы к любому двоичному файлу, который это не в настроенных путях, получили доступ с полным путем. Вы могли также расшириться PATH среда в рамках Вашего сценария.

Проверьте то, что путь определяется путем входа set вывод к файлу журнала из Вашего сценария обертки:

set >>/tmp/udev-env-test

Это могло бы быть похожим на это:

PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
1
27.01.2020, 20:41
  • 1
    это просто может запустить скрипт не команда –  mohammad 06.11.2013, 15:43

В вашем правиле должен быть указан абсолютный путь для исполняемого файла:

ACTION=="add", SUBSYSTEMS=="usb", RUN+="/usr/bin/touch /tmp/test"

Изменить:

И если вы хотите выполнить сценарий, вы должны указать, какая оболочка будет его выполнять:

ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh /path/to/your/script"
2
27.01.2020, 20:41

Теги

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