Firefly开源社区

标题: 关于udev识别u盘并触发脚本与系统自动挂载的冲突问题 [打印本页]

作者: MaybeNot    时间: 2024-4-23 10:57
标题: 关于udev识别u盘并触发脚本与系统自动挂载的冲突问题
我原本是想由udev通过识别usb设备属性为block时,触发我编写的trigger.sh脚本并传参%k,在脚本中进行挂载(如'mount /dev/$1 /mnt/usb')。挂载返回值为0,但是挂载点/mnt/usb却没有东西。
而如果不在脚本中挂载,在开机后插入u盘手动执行'mount /dev/sda1 /mnt/usb' 则可以在挂载点正常访问u盘内容,尽管报了警告FUSE exfat 1.2.8        WARN: volume was not unmounted cleanly.
这时我以为是ubuntu桌面已经将u盘挂载到了/media/firefly/路径下,但是在脚本中先umount再mount还是不行。
于是只好直接在/media/firefly下操作。
为确保/media/firefly路径下文件是u盘,在trigger.sh执行以下命令:
file_path=$(find /media/firefly/ -mindepth 1 -maxdepth 1 -type d)
df_output=$(df -Th $file_path)

type=$(echo "$df_output" | awk 'NR==2 {print tolower($2)}')


却发现file_path的值为空,而在命令行中输入'find /media/firefly/ -mindepth 1 -maxdepth 1 -type d'却可以找到u盘设备,我猜测可能是由于插入u盘后先触发了我添加的/etc/udev/rules.d/80-local.rules,导致系统还未挂载u盘到/media/firefly。
我该如何正确触发我的脚本呢?








tchip_askquestions

null.zip

144 Bytes, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1






欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1