在Linux Fedora10中,接受U盘设备挂接消息
时间:2016-12-06 14:19 来源:linux.it.net.cn 作者:IT
在Fedora10等Linux操作系统中,如果用户插入U盘或者移动硬盘等USB存储设备,将会自动mount到文件系统中。
当U盘插入后,如何收到U盘挂接的通知?
挂接的U盘设备可能的名称是sdb sdc sdd ... 如果有多个U盘胡乱地插拔,如何知道当前插拔的是哪个设备?
当设备被挂接后,如何获得被挂接后的文件系统路径呢?
因为对Linux不够熟悉,解决这些问题我弄了1天,走了不少弯路,现在终于解决了。
首先,添加一条udev的规则。
在/etc/udev/rules.d/目录下,建立一个空文本文件,命名为:99_usb_detection.rules
99表示优先级是最低的,也是最后执行的。
然后在此文本文件中加入一行。
我开始在这里钻了半天的牛角尖,老想去挂接 SUBSYSTEM="usb", 导致一直不能找到很好的方法获取到U盘的挂接路径。
那么,编辑此文件后,每当U盘没自动挂接就会启动你的程序的一个实例,就算没有GUI登陆也会自动启动。
在启动的进程中,可以通过环境变量获取到相关参数。获取环境变量可以用getenv函数,不过想看到所有的环境变量可以采用main函数的扩展版本。
第3个参数就是字符串序列,可以通过它来得到环境变量。这里可以看看有哪些环境变量可以利用。
根据其中的DEVNAME就能够获取到挂接的路径了。也可以通过一些其它参数判断当前设备是否是期望的设备。
最后,获取挂接的文件系统的命令是:
弄出来发现还蛮简单。
(责任编辑:IT)
在Fedora10等Linux操作系统中,如果用户插入U盘或者移动硬盘等USB存储设备,将会自动mount到文件系统中。
我开始在这里钻了半天的牛角尖,老想去挂接 SUBSYSTEM="usb", 导致一直不能找到很好的方法获取到U盘的挂接路径。 第3个参数就是字符串序列,可以通过它来得到环境变量。这里可以看看有哪些环境变量可以利用。
弄出来发现还蛮简单。 (责任编辑:IT) |