Zamontowałem zdalny system plików za pomocą sshfs (wersja 2.8.4)
sshfs -o allow_root [email protected]: ./example
ale odmontowanie go kończy się niepowodzeniem
> fusermount -u example
umount: /home/joeuser/example: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Wszelkie pomysły na to, co może być przyczyną tego błędu i jak go naprawić?
ps aux | grep gvfsd-archive
.Myślę, że chcesz leniwego odmontowania:
źródło
Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem *as soon as it is not busy* anymore
. Więc to nie rozwiąże pierwotnego problemu. Uzgodniony z @Gilles,lsof
powinien pomóc tutaj.umount -l
działał.Właśnie miałem ten problem i nie mogłem
kill -9
odczytać z zamontowanego systemu plików.kill -9
nie działał nawet pofusermount -zu /mount/point
lubumount -l /mount/point
(co działało). Jedyne, co zadziałało, topkill -9 sshfs
.źródło
fusermount -zu /mount/point
pracował dla mnie. Dzięki!Uruchamianie Ubuntu
man fusermount
mówi o-z
opcji, która jest udokumentowana jako „leniwy odmontowanie”. Wygląda na to, że jest powiązane, ale wymaga potwierdzenia, które podaje inna strona man: fusermount (man.he.net) , która mówi „leniwy odmontować (działa, nawet jeśli zasoby są nadal zajęte)”. Trzeba go używać z-u
, w-z
opcji sam, będzie produkować błąd. Wypróbowałem tę-z
opcję i mogę to potwierdzić, ale to właśnie za dużo wygląda na lewę: co to dokładnie robi? Czy chcesz odmontować go automatycznie, gdy katalog nie będzie już zajęty? Nie wiem, nieudokumentowane, takie niebezpieczne.Oto kolejna opcja, bardziej szczegółowa, ale bezpieczniejsza: próbuje odmontować, dopóki nie uda jej się tyle razy, ile potrzeba, w pętli.
Informacje zwrotne dotyczące postępów są minimalne, dzięki czemu można wiedzieć, co się dzieje, i nie wierzyć, że został powieszony.
Ta opcja jest dopuszczalna ze skryptu powłoki; w przypadku interakcji z wierszem poleceń użycie tej
-z
opcji jest wygodniejsze, ale prawdopodobnie należy pamiętać, że strona podręcznika man tego nie dokumentuje i mogą istnieć wątpliwości co do tego, co dokładnie robi.źródło
Często widzę „urządzenie zajęte” przez sshfs, gdy mam okno terminala otwarte na katalog w udziale sshfs. Wyjście z terminala lub zmiana katalogów na udział lokalny, a następnie uruchomienie fusermount -u rozwiązuje moje problemy.
źródło
W systemie OS X spróbuj:
źródło
Jeśli już upewniłeś się, że żaden proces nie korzysta z systemu plików przed próbą „regularnego” zamontowania:
fuser -vm /mount/point
i / lublsof /mount/point
znaleźć ich,/mount/point
,Próbować:
pkill -KILL sshfs
i wtedyfusermount -u /mount/point
.Pomogło mi to, gdy straciłem połączenie sieciowe i nie mogłem odmontować niereagującego punktu montowania sshfs.
Ponadto, jeśli chcesz, aby sshfs automatycznie umountował się po utracie połączenia sieciowego , informując aplikacje używające sshfs o błędzie we / wy (aby nie utknęły w nieskończoność), zamontuj za pomocą:
sshfs -o ServerAliveInterval=15 remote-srv:/remote/dir /local/mountpoint
Gdy żadne dane nie są wymieniane,
ssh
klient będzie sprawdzał co 15 sekund, czy może uzyskać odpowiedź z serwera. Jeśli 3 testy zakończą się niepowodzeniem, nastąpi rozłączenie i odmontowanie.źródło