Обнаружение удаления / вставки носителя CDROM в Linux - PullRequest
3 голосов
/ 25 февраля 2011

Существует ли чистый способ обнаружения или получения событий, когда пользователь вставляет или удаляет компакт-диск на платформе Linux?

Ответы [ 3 ]

3 голосов
/ 25 февраля 2011

Udev следит за оборудованием и передает события в dbus.Вам просто нужен слушатель dbus.Быстрая проверка с использованием инструмента dbus-monitor показывает это в моей системе:

dbus-monitor --system

signal sender=:1.15 -> dest=(null destination) serial=144 path=/org/freedesktop/UDisks; interface=org.freedesktop.UDisks; member=DeviceChanged
   object path "/org/freedesktop/UDisks/devices/sr0"

Это событие DeviceChanged от Udisks, и путь к устройству включен.

Итак, на любом языке программирования, который вы хотите, который поддерживает привязки dbus, вы можете прослушивать эти события (системная шина).

2 голосов
/ 25 февраля 2011

Традиционно для этого существует HAL (Уровень аппаратной абстракции), но на веб-странице написано

HAL находится в режиме обслуживания - нет нового функции добавлены. Все будущее развитие сосредоточено на udisks, UPower и другие части стека. Увидеть Software / DeviceKit для более информация.

и списки страниц DeviceKit

udisks, интерфейс D-Bus для работы с устройствами хранения

Так что udisks , вероятно, должно быть тем, о чем вы просите.

0 голосов
/ 19 марта 2011

Лучший способ найти меня - это Халевт. Halevt, очевидно, является абстракцией более высокого уровня, чем использование HAL напрямую. Он использует XML-файл конфигурации, который может вам понравиться или не понравиться. Документация свойств файла конфигурации несколько отсутствует. Список всех поддерживаемых свойств приведен здесь:

http://www.marcuscom.com/hal-spec/hal-spec.html

Также ссылка на Халевт: http://www.nongnu.org/halevt/

...