Comment démonter (proprement) sshfs lorsqu'il est monté sur un point de montage NFS?

15

Mon collègue a un ordinateur de bureau avec /homepartagé sur notre serveur de fichiers. J'ai développé un script Perl pour sshfsmonter un certain répertoire sur un autre hôte SSH qui fonctionne bien sur mon ordinateur portable.

Sur son ordinateur, le script ne parvient pas à démonter le sshfsà la fin et laisse le point de montage impur. Je n'ai trouvé aucun moyen de récupérer le point de montage autre que le redémarrage. Après quelques tests, j'ai constaté que la différence entre nos configurations est que la sienne /homeest sur NFS. Dans le sien, /tmpcela fonctionne parfaitement.

Après le montage, pendant l'opération de script, tout va bien. Mais lorsque vous tuez le sshfsprocessus, il est répertorié <defunc>par psjusqu'à ce que le processus parent (le script Perl) se termine. Lors de l'exécution d'une sshfscommande brute sur le shell, le problème se produit toujours.

Une ls -dlsortie pour le point de montage ressemble à ceci (comme on s'en souvient - je n'ai pas de copie réelle de la sortie du shell à portée de main):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(uniquement des points d'interrogation pour la plupart des informations, au moins tous les détails de l'autorisation)

Le montage sshfs est toujours répertorié par mountmais une opération de démontage échoue avec l' autorisation d' erreur refusée même en faisant comme root.

J'ai cherché sur Google, mais je n'ai trouvé que de nombreuses comparaisons entre sshfs et NFS pour exécuter des systèmes de fichiers réseau. Comment puis-je faire un montage / démontage sshfs dans le répertoire NFS en toute sécurité?

Daniel Böhmer
la source

Réponses:

38

Vous devriez pouvoir démonter le partage sshfs en exécutant:

 fusermount -u /path/to/sshfs/share
CJ Travis
la source
J'ai essayé, mais ma permission a été refusée . Bien sûr, un ordinaire umountdoit échouer lorsqu'il est exécuté en tant qu'utilisateur non root.
Daniel Böhmer
La raison la plus probable pour laquelle vous ne pouvez pas démonter (avec n'importe quelle méthode) est que son répertoire personnel est monté à partir de NFS où il est exporté avec l' root_squashoption. Ainsi, root n'a aucune autorité dans son répertoire d'origine. Vous pouvez désactiver, root_squashmais il est probablement plus sûr de simplement monter ailleurs.
JFlo
2
J'oublie à chaque fois, cela umountou ne fusermount -ufonctionne pas, lorsque le répertoire est utilisé quelque part. Donc, cdhors du répertoire avant d'utiliser fusermount -uou d'utiliserlsof /my/local/mountpoint
eli
16

Il suffit de tuer le processus à l'aide de pkill et de démonter le chemin du dossier monté.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share
SAGAR
la source
Parfois, je dois faire "sudo umount -f" ou "sudo umount -l" au lieu de umount.
fchen
0
sudo diskutil umount force ~/mount/

Il semble que cette commande fonctionne sous OS X.

Robert Mihai Ionas
la source
6
Pouvez-vous développer votre réponse pour expliquer ce que fait ce code et comment il résout le problème? Le code inexpliqué est déconseillé , car il n'enseigne pas la solution. Merci. de la file d'attente des avis
fixer1234
C'est pour OS X. La question posée pour Linux.
Duncan X Simpson