On Mon, Oct 05, 2009 at 11:10:11PM +0400, Stanislav Maslovski wrote: > On Mon, Oct 05, 2009 at 06:57:08PM +0400, Alexander Galanin wrote: > > On Sun, 4 Oct 2009 16:28:39 +0400 > > Stanislav Maslovski <[email protected]> wrote: > > > > > On Sun, Oct 04, 2009 at 02:03:22PM +0400, Alexander Galanin wrote: > > > > Как результат такой перегруженности процесса монтирования, нормальных > > > > средств для работы с демоном HAL нет. "Нормальный" понимается как > > > > "простой", 'понятный" и "скриптуемый". > > > > > > Не так страшен черт, как его малюют. Довольно давно уже (примерно с > > > момента, когда иксы к hal привязали) для себя использую связку из > > > autofs, hald и пары скриптов. До этого использовал связку udev + > > > autofs. > > > > > > Насколько просто, понятно и скриптуемо это решение -- можешь > > > посмотреть сам. Прилагаю tar.gz. > > > > Занятно. Только вот непонятно, зачем нужно ожидание исчезновения > > симлинки из /media. > > Это на случай race между cleanup скриптом и отработкой события add в > другом скрипте, или между событиями удаления/добавления в одном > скрипте (точнее, между двумя рейнкарнациями одного скрипта). > Предложения как сделать лучше принимаются. Текущий вариант > остался со времени "proof of concept".
В догонку: Тут сначала надо бы разобраться необходимо ли вообще предохраняться от race. В документации не очень внятно написано про порядок вызова callouts для _разных_ устройств. Т.е., может ли быть так, что cleanup скрипт еще не завершился (стартует по факту создания записи /org/freedesktop/Hal/devices/computer), а hal-autofs(add) уже выполняется (стартует по факту втыкания флешки). Кстати, как я сейчас вижу, мое "решение" вовсе не избавляет от этого race condition, если на момент запуска hal-autofs(add) в /media/ _отсутствует_ симлинк c именем `basename $UDI`. Нужен семафор. Второй момент -- может ли по каким-то причинам реализоваться ситуация, когда hal-autofs(remove) еще не завершился, а hal-autofs(add) уже стартовал для того же девайса (выдернули и тут же воткнули флешку). От этого мое "решение" предохраняет (даже если удаление не отработает то и зацикливание на ожидании не страшно -- hald прибивает подвисшие callouts, и симлинк уже есть). __ Stanislav -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

