我已经编写了一些带有Python-fuse的简单文件系统,但是现在我想做一些我在pydoc中找不到的东西,也没有找到我发现的示例脚本:当文件系统卸载{时{1}},我想捕获该操作,执行umount,然后rmdir由我的程序的初始化脚本创建的安装目录。如果它甚至可能,那么捕获umount动作的神奇咒语是什么?
我可以看到它如何很容易变成无限循环,但我希望能够弄清楚如何在第一次被击中时禁用umount陷阱。
<小时/> 更新:我在http://omake.metaprl.org/prerelease/omake-dll-fuse.html#htoc582找到fusermount -u
并添加了该方法,但似乎没有调用。
答案 0 :(得分:0)
jcomeau@intrepid:/usr/src/google-desktop/api$ cat /usr/lib/python2.6/dist-packages/fuseparts/* | strings | grep destroy fsdestroy
我使用的是:
def fsdestroy(self, data = None): syslog.syslog(syslog.LOG_INFO, 'destroy %s: %s' % (self.mountpoint, data)) os.rmdir(self.mountpoint)
不知道数据参数是否必要,但不会受到伤害。显然,它在 umount之后被称为,所以我不必担心处理它。
答案 1 :(得分:0)
另一个解决方案,虽然不是特定的,也没有在Python下测试,但可以防止FUSE使用-f
开关进行“守护”。
在这种情况下,fuse_main
方法将阻塞,直到卸载文件系统,然后您将获得控制权。
如果您确实需要deamon行为,您可以在安装前自行重新实现。