当用户在Linux平台上插入或删除CD时,是否有一种干净的方法来检测或接收事件?
答案 0 :(得分:3)
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"
这是Udisks的DeviceChanged事件,包含设备路径。
因此,无论您想要哪种编程语言支持dbus绑定,您都可以监听这些(系统总线)事件。
答案 1 :(得分:2)
传统上有HAL(硬件抽象层),但网页上说
HAL处于维护模式 - 没有新功能 功能已添加。所有的未来 开发重点关注udisks,UPower 和堆栈的其他部分。看到 软件/ DeviceKit更多 信息。
和DeviceKit页面列出
udisks,一个用于处理存储设备的D-Bus接口
所以udisks应该是你所要求的。
答案 2 :(得分:0)
我能找到的最好方法是Halevt。 Halevt显然比直接使用HAL更高级别的抽象。它使用基于XML的配置文件,可能符合您的喜好,也可能不符合您的喜好。配置文件属性文档有点缺乏。此处列出了所有支持的属性的列表:
http://www.marcuscom.com/hal-spec/hal-spec.html
此外,指向Halevt的链接:http://www.nongnu.org/halevt/