由udev调用时不执行mount
我试图创建一些udev规则来挂载和卸载USB闪存驱动器;目前的规则非常简单: ACTION=="add",KERNEL=="sd[b-z]",RUN+="/root/scripts/plug_flash_drive.sh %k" ACTION=="remove",KERNEL=="sd[b-z]",RUN+="/root/scripts/unplug_flash_drive.sh %k" plug_flash_drive.sh也非常简单: device_name=$1 mount_options="umask=000,utf8" if [ ! -e "/media/$device_name" ]; then mkdir "/media/$device_name" fi sleep 1 /usr/bin/mount "/dev/$device_name" "/media/$device_name" -o "$mount_options" unplug_flash_drive.sh: device_name=$1 umount "/dev/$device_name" rmdir "/media/$device_name" 我已经做了一些测试,所以我可以确定: 插入后,将检测到我的闪存驱动器;在/ dev中创建一个文件 通过udev调用plug_flash_drive.sh 脚本的mkdir部分起作用 但是,脚本的“挂载”部分似乎未执行,因此未挂载我的驱动器 当我在命令行上调用脚本时,它们可以正常工作 有人知道udev调用时为什么不执行mount吗? 编辑28/08/14:我在脚本的末尾添加了“ grep -q / proc / mounts &&回声成功||回声失败”,以在调试日志中检查调试脚本是否在脚本结束之前实际挂载了设备。即使在udev调用脚本的情况下,设备似乎已安装在该位置。因此,真正的问题是“通过udev调用安装脚本后,我的块设备似乎已卸载”:s