python - 对 umount 进行融合操作

标签 python fuse umount

我已经用 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/

相关文章:

linux - 无法将基于熔断器的卷公开给 Docker 容器

linux - umount -l 后删除挂载目录

python - 将物理设备挂载到笔记本

linux - 如何卸载繁忙的设备

python - 在代理上调用 dbus 方法而不阻塞(或没有超时)

python - 如何使用 seaborn 创建多线图?

Linux 中的 C++ Stream 接口(interface)

fedora - fedora的库libfuse2和libfuse-dev是什么?

python - exec-maven-plugin 无法在编译阶段之前启动

python - 导入错误 : cannot import name 'get_config' from 'tensorflow.python.eager.context'