有没有办法在断开 USB 外部驱动器(U10.04)时自动运行?

有没有办法在断开 USB 外部驱动器(U10.04)时自动运行?

我购买了一个小型 USB HD,用于进行日常备份,上面有一个 encfs 系统。

我在根目录中有一个autorun脚本,它可以执行一些操作,包括挂载 enc-FS,并且该部分运行良好。

但是,如果我在弹出 enc-FS 之前忘记了fusermount -u它,则不会有任何警告,USB 会卸载,而 encFS 部分似乎仍处于挂载状态。当然事实并非如此,尝试使用 nautilus 进行访问会导致机器“行为异常”。

我认为还存在丢失文件的风险。

在这种情况下,由于某种原因,系统似乎无法检测到驱动器仍然像平常一样处于活动状态。

无论如何,我的问题是,是否可以设置在 USB 弹出时运行的卸载自动运行功能?

谢谢

答案1

好吧,我想出了一个不太优雅的方法来解决这个问题。autorun脚本如下所示:

#!/bin/bash

/path/to/mount-script&

while : # loop isn't really needed ...
do
    sleep 999d # ...  because the script will idle for 999 days
    if (($?))
    then
    # sleep closed abnormally, so tidy up
        /path/to/dismount-script
         exit 1
    fi
done

因此,当驱动器弹出时,系统会检测sleepbash仍在运行,并弹出警告对话框;右键单击sleep对话框并结束它,然后导致退出状态 130,这意味着卸载脚本被调用,当它返回时,bash 脚本终止,然后 USB 设备会干净地弹出。

相关内容