LINUX.ORG.RU

UDEV правило при старте системы выполняется несколько раз

 , , ,


0

1

Доброго дня ! Есть правило на добавление и извлечение usb устройства (флешки).

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="add", RUN+="/cu/scripts/usb_event_add.sh"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="remove", RUN+="/cu/scripts/usb_event_remove.sh"

Все работает, но есть проблема - после рестарта всей системы независимо вставлена флешка или нет происходит срабатывание этого события несколько раз.

Как мне настроить события так чтобы они срабатывали только на реальные физические манипуляции с флешкой, а не в момент старта системы с ее неоднократными срабатываниями событий. Спасибо!



Последнее исправление: noweapon (всего исправлений: 2)

Под usb_device попадает вообще что угодно. Посмотри через udevadm info -t, какие у девайса есть свойства, и привяжись к ним. Может, будет достаточно DRIVER=, или, если надо к конкретной флешке — что-то из ID_*.

alegz ★★★★
()

У тебя под это правило все usb устройства попадают, для флешки можно попробовать так:

SUBSYSTEMS=="usb", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem"

а не в момент старта системы

В момент старта системы оно тоже будет выполнятся.

arax ★★
()
Ответ на: комментарий от noweapon

У тебя само правило сделано не правильно т.к реагирует на любое usb устройство, в том числе на сам корневой хаб, который появляется при загрузке. В зависимости от задачи (конкретная модель флешка, либо все флешки) нужно указать либо модель флешки, либо все блочные устройства, у которых шина usb.
Ну ещё ты можешь в скрипте заблеклистить хабы (их видно в lsusb), чтобы он не реагировал на них. Но тогда скрипт будет реагировать на другие usb устройства

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от noweapon

на добавление перестало

Сейчас проверил у меня работает, так что не знаю, попробуй ENV{ID_FS_USAGE}==«filesystem» убрать.

Например

Вариантов много, например статус определенного сервиса systemd, наличие какого-либо файла или процесса которых при загрузке нет.

arax ★★
()