我已经用 Python-fuse 编写了一些简单的文件系统,但现在我想做一些我在 pydoc 和我找到的示例脚本中都找不到的东西:当文件系统被卸载时 fusermount -u
,我想捕获那个 Action ,执行 umount,然后 rmdir 由我的程序的初始化脚本创建的挂载目录。如果可能的话,捕获 umount 操作的魔法咒语是什么?
我知道这很容易变成无限循环,但我希望能弄清楚如何在第一次遇到 umount 陷阱时禁用它。
更新:我在 http://omake.metaprl.org/prerelease/omake-dll-fuse.html#htoc582 找到了
destroy
并添加了方法,但似乎没有被调用。
最佳答案
找到了!它是 Python-fuse 中的 fsdestroy()。定位于:
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)
不知道数据参数是否必要,但没有坏处。显然,它在卸载之后被称为 ,所以我不必担心处理它。
关于python - 对 umount 进行融合操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840427/