LINUX.ORG.RU
решено ФорумAdmin

Udev remove в ubuntu

 , ,


0

1

Предыстория: Есть сервак с ubuntu 12.04. Из него делается медиасервер. Есть желание чтобы при втыкании флешки без заморочек начиналось проигрывание с этой флешки.

Написано правило для udev-а

ACTION=="add", KERNEL=="sd[a-z]", SUBSYSTEM=="block", RUN+="play %N"
При втыкании любой флешки скрипт ищет партиции /dev/sd[b-z][1-9], которые на смонтированы, если не находит то ищет /dev/sd[b-z] (заморочка с некоторыми флешками, у которых надо монтировать именно /dev/sdb, а sdb1 просто нету), монтирует всё в каталоги, сканит, играет. Всё ок.

Не хорошо получается если флешку выдернуть. Маунт-то висит, надо отмонтировать, убрать каталог. Пишу правило на ACTION=«remove» и понимаю что толи лыжи, толи... Правило

ACTION=="remove", RUN+="doecho %N"
со скриптом
#!/bin/sh
echo $1 >> /tmp/usb.log
дают выхлоп в


/dev/.tmp-block-8:33

/dev/.tmp-block-8:32




/dev/.tmp-char-189:299

Где мои /dev/sd[b-z] или ЧЯДНТ???

Печаль ещё в том, что

udevadm monitor --environment | grep -C 3 ".tmp"
При выдёргивании флешки пуст.

★★

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

Лучше покажите весь вывод udevadm monitor, без grep.

Где мои /dev/sd[b-z]

Удалены из системы вместе со флешкой.

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

Да, покопался, понял что надо %k передавать скрипту, а /dev уже там добавлять. В итоге

ACTION=="add", KERNEL=="sd?", SUBSYSTEM=="block", RUN+="domount %k"
ACTION=="remove", KERNEL=="sd?", SUBSYSTEM=="block", RUN+="doumount %k"
даёт уникальные события на добавление и изъятие флешки/харда.

chenger ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.