【发布时间】:2011-07-03 23:52:08
【问题描述】:
当用户在 Linux 平台上插入或移除 CD 时,是否有一种干净的方法来检测或接收事件?
【问题讨论】:
-
用什么编程语言?
当用户在 Linux 平台上插入或移除 CD 时,是否有一种干净的方法来检测或接收事件?
【问题讨论】:
我能找到的最好方法是 Halevt。 Halevt 显然是比直接使用 HAL 更高级别的抽象。它使用基于 XML 的配置文件,您可能喜欢也可能不喜欢。配置文件属性文档有些欠缺。此处列出了所有受支持的属性:
http://www.marcuscom.com/hal-spec/hal-spec.html
另外,Halevt 的链接:http://www.nongnu.org/halevt/
【讨论】:
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 绑定的编程语言,您都可以监听那些(系统总线)事件。
【讨论】: