l'action de fusible sur umount
Question
J'ai écrit quelques simples avec des systèmes de fichiers Python-fusible, mais maintenant je suis désireux de faire quelque chose que je ne trouve pas dans le pydoc ni dans les exemples de scripts que j'ai trouvé: lorsque le système de fichiers est démonté avec fusermount -u
, je veux piéger cette action, effectuer umount et rmdir alors le répertoire de montage créé par le script d'initialisation de mon programme. S'il est même possible, quel est le magique incantatoire pour piéger l'action umount?
Je peux voir comment cela pourrait facilement se transformer en une boucle sans fin, mais je peux comprendre, espérons savoir comment désactiver le piège umount la première fois qu'il est touché.
Mise à jour: J'ai trouvé
destroy
http://omake.metaprl.org/prerelease /omake-dll-fuse.html#htoc582 et a ajouté la méthode, mais il ne semble pas être appelé.
La solution
trouvé! il est fsdestroy () in-fusible python. situé par:
jcomeau@intrepid:/usr/src/google-desktop/api$ cat /usr/lib/python2.6/dist-packages/fuseparts/* | strings | grep destroy fsdestroy
Qu'est-ce que j'était:
def fsdestroy(self, data = None): syslog.syslog(syslog.LOG_INFO, 'destroy %s: %s' % (self.mountpoint, data)) os.rmdir(self.mountpoint)
Je ne sais pas si le paramètre de données est nécessaire ou non, mais ne fait pas mal. Et apparemment, il est appelé après umount, donc je ne l'ai pas à vous soucier de la manipulation que.
Autres conseils
Une autre solution, mais pas spécifique et non testé en Python, est Prevent FUSE de "daemonizing" avec le commutateur -f
.
Dans ce cas, la méthode fuse_main
bloque jusqu'à ce que le système de fichiers non montés, et vous obtiendrez le contrôle en arrière par la suite.
Si vous avez besoin le comportement deamon, vous pouvez ré-écrire vous-même avant de monter.