检测Linux中的CDROM介质删除/插入

时间:2011-02-25 00:33:49

标签: linux device cd-rom

当用户在Linux平台上插入或删除CD时,是否有一种干净的方法来检测或接收事件?

3 个答案:

答案 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/