如何编程自动感知U盘的插入?
Linux的U盘自动mount是通过HAL daemon, d-bus发出消息,由GNOME Volume Manager或KDE守护程序自动mount的。但是如果我编程是怎样感知有U盘插入呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Linux的U盘自动mount是通过HAL daemon, d-bus发出消息,由GNOME Volume Manager或KDE守护程序自动mount的。但是如果我编程是怎样感知有U盘插入呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
那就可以把d-bus, hal都卸载掉,自己写程序使用hotplug机制
我写过一个,就是写个监控程序,扫描/proc目录下文件的变化,就可以实现设备的自动挂载,没出什么错,不知道还有什么其他简单的方法
Gamin is a file and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor) system. This is a service provided by a library which allows to detect when a file or a directory has been modified.
hotplug 是内核的一部分,在设备插入或拔出时,自动进行配置内核状态。udev 是 hotplug 的一部分,负责维护动态的 /dev 目录,使 /dev 目录的内容与当前系统状态一致。D-BUS 可以在应用程序之间传送消息,例如可以把“连接上一台打印机”的消息发送给 HAL。HAL 可以集成多种来源的信息,包括内核消息,配置文件等等,然后根据 D-BUS 的消息进行操 作。gamin 是改进的文件状态监视程序。
例如插入优盘。hotplug 自动加载需要的模块,udev 创建相应的 /dev/sda1 等等节点,hotplug 向 HAL 发消息,HAL 收到消息后,根据配置文件,它运行 fstab-sync 来修改 fstab,创建 /media 的子目录作为挂载点。gamin 检测到 fstab 发生变化之后,通知桌面系统。桌面系统在 “计算机” 项目中建立驱动器图标。
在拔出优盘时,与上面的过程类似,模块被卸载,设备文件被删除,fstab 中相应条目被删除,/media 目录下的挂载点也被删除了。
难道不是用hotplug机制了吗?
linux已经用autofs代替了amd进行automount