Bagaimana (bersih) turun sshfs ketika dipasang pada titik mount NFS?

15

Rekan kerja saya memiliki komputer desktop yang /homedibagikan di server file kami. Saya telah mengembangkan skrip Perl untuk sshfs-mounting direktori tertentu pada host SSH lain yang berfungsi dengan baik di laptop saya.

Di komputernya, skrip gagal turun sshfsdi bagian akhir dan membuat mountpoint tidak bersih. Saya tidak menemukan cara untuk memulihkan mountpoint selain me-reboot. Setelah beberapa pengujian saya menemukan bahwa perbedaan antara setup kami adalah bahwa dia /homeada di NFS. Dalam bukunya /tmpitu bekerja dengan sempurna.

Setelah mount, selama operasi skrip semuanya baik-baik saja. Tapi ketika membunuh sshfsproses itu terdaftar sebagai <defunc>oleh pssampai proses induk (Perl script) keluar. Saat menjalankan sshfsperintah mentah pada shell masalah masih terjadi.

Sebuah ls -dloutput untuk terlihat mount seperti ini (seperti yang diingat - Saya tidak memiliki salinan nyata dari output shell di tangan):

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

(hanya tanda tanya untuk sebagian besar informasi, setidaknya semua detail izin)

Mount sshfs masih terdaftar oleh mounttetapi operasi unmount gagal dengan izin kesalahan ditolak bahkan ketika melakukan seperti root.

Saya mencari di Google tetapi hanya menemukan banyak perbandingan antara sshfs dan NFS untuk menjalankan sistem file jaringan. Bagaimana saya bisa melakukan sshfs mount / unmount di direktori NFS dengan aman?

Daniel Böhmer
sumber

Jawaban:

38

Anda harus dapat meng-unmount share sshfs dengan mengeksekusi:

 fusermount -u /path/to/sshfs/share
CJ Travis
sumber
Saya mencoba ini tetapi mendapat izin ditolak . Tentu saja orang biasa umountharus gagal ketika dijalankan sebagai pengguna non-root.
Daniel Böhmer
Kemungkinan besar alasan Anda tidak dapat meng-unmount (dengan metode apa pun) adalah karena dir rumahnya adalah mount dari NFS yang diekspor dengan root_squashopsi. Dengan demikian, root tidak memiliki otoritas dalam dir rumahnya. Anda mungkin mematikan root_squashtetapi mungkin lebih aman untuk hanya memasang di tempat lain.
JFlo
2
Saya lupa setiap kali, itu umountatau fusermount -utidak berfungsi, ketika direktori digunakan di suatu tempat. Jadi cdkeluar dari direktori sebelum menggunakan fusermount -uatau menggunakanlsof /my/local/mountpoint
eli
16

Bunuh saja proses menggunakan pkill untuk kemudian un-mount path folder yang terpasang.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share
SAGAR
sumber
Terkadang saya harus melakukan "sudo umount -f" atau "sudo umount -l" alih-alih umount.
fchen
0
sudo diskutil umount force ~/mount/

Sepertinya perintah ini berfungsi di OS X.

Robert Mihai Ionas
sumber
6
Bisakah Anda memperluas jawaban untuk menjelaskan apa yang dilakukan kode ini dan bagaimana mengatasi masalah? Kode yang tidak dapat dijelaskan tidak disarankan , karena tidak mengajarkan solusinya. Terima kasih. dari review queue
fixer1234
Ini untuk OS X. Pertanyaan yang diajukan untuk Linux.
Duncan X Simpson