我已经用 Python 编写了一个 FUSE 文件系统,当我单击“文件”实用程序中的弹出按钮时,我无法正确卸载它(这正在 Debian 8/Jessie 中进行测试)。当我尝试弹出文件系统时,出现权限被拒绝错误。
转到命令行,我可以sudo umount ~/mnt/point
或者我可以fusermount -u ~/mnt/point
并且都可以正常工作。每次我尝试通过文件 GUI 弹出时,以下行都会打印到系统日志中:
gnome-session[1204]: (tracker-miner-fs:1377): Tracker-WARNING **: Unmount operation failed, adding back mount point...
gnome-session[1204]: (tracker-extract:1408): libmediaart-WARNING **: Unmount operation failed, adding back mount point...
gnome-session[1204]: (tracker-extract:1408): Tracker-WARNING **: Unmount operation failed, adding back mount point...
查看我为 FUSE 支持导入的 fusion 代码(我使用的确切库在这里:https://github.com/terencehonles/fusepy)我没有看到任何可以连接的函数回调来从 GUI 获取卸载请求(我的理解是fusermount
应该在幕后处理这些东西)。
/sbin/umount.<fstype>
我什至在包装上编写了一个简单的 umount 帮助程序脚本fusermount
,但这并没有改变行为或日志中的任何内容。我还应该注意到,实现 FUSE 文件系统的程序与我登录 Debian 的用户身份相同。
我需要在 FUSE 文件系统中做什么才能正确处理用户在 Debian 界面中的弹出操作?