在 Linux 中检测 CDROM 介质移除/插入的最简单方法是啥

Posted

技术标签:

【中文标题】在 Linux 中检测 CDROM 介质移除/插入的最简单方法是啥【英文标题】:What's the simplest way to detect CDROM media removal/insertion in Linux在 Linux 中检测 CDROM 介质移除/插入的最简单方法是什么 【发布时间】:2011-10-02 15:14:49 【问题描述】:

在 Linux 中检测 CDROM 介质移除和插入的最简单方法是什么?我想写一些简单的代码来处理这个。例如,只需绑定一个用于媒体插入的事件并实现处理程序。

谢谢!

【问题讨论】:

【参考方案1】:

试试man udev,或man hotplug

【讨论】:

【参考方案2】:

桌面“标准”为此提供了选项。

例如,我认为 Gnome 为此使用 dbus:

http://www.linuxcertification.co.za/linux-training-sysfs-udev-hald-dbus

[..]这些应用程序主要用于桌面环境在事件发生时执行任务,例如插入USB驱动器时打开文件浏览器或插入相机时执行图像应用程序。

D-Bus 用于例如在插入音频 CD 时启动媒体播放器并通知其他应用程序当前正在播放的歌曲。

配置

您可以让您的桌面外壳(例如 Gnome/nautilus)在发生这种情况时调用您的应用程序:

http://library.gnome.org/users/user-guide/stable/gosnautilus-61.html.en

非桌面

对于非桌面版,man udev 确实是你的朋友。关于编写 udev 规则的信息在这里:

http://reactivated.net/writing_udev_rules.html

【讨论】:

【参考方案3】:

从用户空间最简单的方法是 grep 挂载命令的输出,前提是你已经为自动挂载配置了 CDROM(在 /etc/fstab 中)。但是如果你想要一个异步通知,你可能需要查看进入 udev 规则和 uevents。

【讨论】:

以上是关于在 Linux 中检测 CDROM 介质移除/插入的最简单方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

linux下U盘状态检测

linux下 如何以读写方式挂载光驱到挂载点

Linux 下使用mount命令挂载CDROM

检测串口插入/移除

使用 C++ 在 Windows 中检测 USB 插入/移除事件

linux系统怎么查看自动存储介质和光驱自动播放功能是不是关闭