Может ли Ruby определить, когда USB-накопитель вставлен в USB-порт в Linux?

Я работаю над утилитой, которая будет сканировать USB-порты и монтировать любые найденные устройства Mass Storage. Я могу опросить об изменениях (с исправленной версией Ruby-USB), но я бы предпочел получить уведомление или подписаться на какое-то событие.

Есть ли способ пощекотать Ruby, когда вставлен USB-накопитель?


person Therealstubot    schedule 23.10.2009    source источник
comment
есть ли причина, по которой вы пишете такую ​​утилиту вместо того, чтобы использовать что-то, что уже делает это? На ум приходят hotplug и / или udev ...   -  person rmeador    schedule 23.10.2009
comment
Вы можете использовать libusb ruby ​​.   -  person Paulo Fidalgo    schedule 10.05.2012


Ответы (1)


Ознакомьтесь с ruby-dbus. Для него также есть руководство.

person statenjason    schedule 23.10.2009
comment
Под этим, я полагаю, вы имеете в виду прослушивание событий HAL? Это работает, за исключением того, что HAL теперь устарел (вау, это было быстро ;-), и вместо этого дистрибутивы переходят на libudev. - person ephemient; 24.10.2009
comment
Заменой HAL является DeviceKit, который выполняет по сути то же самое, за исключением: а) модульного (HAL - огромный монолитический объект) и б) реализует только те вещи, которые недоступны из других библиотек, в отличие от HAL, который дублирует целую кучу функциональность, найденная в другом месте (например, libudev). Однако он по-прежнему основан на D-BUS. - person Jörg W Mittag; 24.10.2009
comment
+1 каждому из вас. Хорошо знать. Буду иметь в виду, когда в следующий раз попытаюсь забрать аппаратные уведомления. - person statenjason; 24.10.2009
comment
Именно то, что я искал. Спасибо. - person Therealstubot; 27.10.2009