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é?

Réponses:


38

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

 fusermount -u /path/to/sshfs/share

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

Parfois, je dois faire "sudo umount -f" ou "sudo umount -l" au lieu de umount.
fchen

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.