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

发布于 2024-10-19 12:56:11 字数 51 浏览 6 评论 0原文

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

Is there a clean way to detect or receive events when a user inserts or removes a CD on a Linux platform?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

云仙小弟 2024-10-26 12:56:11

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 绑定,您都可以侦听这些(系统总线)事件。

Udev monitors hardware and forwards events to dbus. You just need some dbus listener. A quick check using the dbus-monitor tool shows this in my system:

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"

This is the DeviceChanged event from Udisks, and the device path is included.

So, in whatever programming language you want that supports dbus bindings you can listen for those (system bus) events.

拥抱没勇气 2024-10-26 12:56:11

传统上有 HAL(硬件抽象层)用于此目的,但网页上说

HAL 处于维护模式 - 无新内容
添加了功能。一切未来
开发重点是udisks、UPower
以及堆栈的其他部分。看
软件/DeviceKit 了解更多
信息。

和 DeviceKit 页面列出

udisks,用于处理存储设备的 D-Bus 接口

因此 udisks 可能就是您想要的正在要求。

Traditionally there has been HAL (Hardware Abstraction Layer) for this, but the web page says

HAL is in maintenance mode - no new
features are added. All future
development focuses on udisks, UPower
and other parts of the stack. See
Software/DeviceKit for more
information.

and the DeviceKit page lists

udisks, a D-Bus interface for dealing with storage devices

So udisks should probably be what you are asking for.

蒗幽 2024-10-26 12:56:11

我能找到的最好的方法是Halevt。 Halevt 显然是比直接使用 HAL 更高级别的抽象。它使用基于 XML 的配置文件,您可能喜欢也可能不喜欢。配置文件属性文档有些缺乏。此处列出了所有支持的属性的列表:

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

另外,Halevt 的链接:http:// www.nongnu.org/halevt/

The best way I was able to find was Halevt. Halevt is apparently a higher level abstraction than using HAL directly. It uses an XML based configuration file that may or may not be to your liking. The configuration file properties documentation is somewhat lacking. A list of all the supported properties are listed here:

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

Also, the link to Halevt: http://www.nongnu.org/halevt/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文