在 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 介质移除/插入的最简单方法是啥的主要内容,如果未能解决你的问题,请参考以下文章