5

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

谢谢!

4

3 回答 3

2

尝试man udev,或man hotplug

于 2011-07-11T10:26:55.670 回答
1

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

例如,我认为 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

于 2011-07-11T10:42:14.907 回答
0

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

于 2011-07-11T09:30:41.220 回答