在 Linux 中检测 CDROM 介质移除和插入的最简单方法是什么?我想写一些简单的代码来处理这个。例如,只需绑定一个用于媒体插入的事件并实现处理程序。
谢谢!
尝试man udev
,或man hotplug
。
桌面“标准”为此提供了选项。
例如,我认为 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 规则的信息在这里:
用户空间最简单的方法是 grep 挂载命令的输出,前提是您已将 CDROM 配置为自动挂载(在 /etc/fstab 中)。但如果您想要异步通知,您可能需要查看 udev 规则和uevents。