Eu escrevi um sistema de arquivos FUSE em Python e estou tendo problemas para fazê-lo desmontar corretamente quando clico no botão de ejeção do utilitário Files (isso está sendo testado no Debian 8 / Jessie). Quando tento ejetar o sistema de arquivos, recebo um erro de permissão negada.
Indo para a linha de comando, posso sudo umount ~/mnt/point
ou posso fusermount -u ~/mnt/point
e ambos funcionam corretamente. As linhas a seguir são impressas no syslog toda vez que tento ejetar pela GUI do Files:
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...
Examinando o código do fusepy estou importando para o suporte do FUSE (a biblioteca exata que estou usando está aqui: link ) Eu não vejo nenhum retorno de chamada de função que eu possa ligar para obter pedidos de não-montagem da GUI (eu entendo que fusermount
deve lidar com essas coisas nos bastidores de qualquer maneira).
Eu até escrevi um script auxiliar de umount simples em /sbin/umount.<fstype>
para envolver fusermount
, mas isso não alterou nada no comportamento ou nos logs. Eu também devo observar que meu programa implementando meu sistema de arquivos FUSE está rodando como o mesmo usuário que eu estou logado no Debian.
O que eu preciso fazer no meu sistema de arquivos FUSE para lidar adequadamente com a ação de ejeção de um usuário na interface Debian?