私の同僚はデスクトップコンピュータを持っていて、ファイルサーバ上で/homeを共有しています。私のラップトップでは問題なく動作するsshfsの特定のディレクトリを別のSSHホストにマウントするためのPerlスクリプトを開発しました
彼のコンピュータでは、スクリプトは最後にsshfsのマウント解除に失敗し、マウントポイントをクリーンなままにしてしまいます。再起動以外にマウントポイントを回復する方法は見つかりませんでした。いくつかのテストの後、私たちの設定の違いは、彼の/homeがNFS上にあることだとわかりました。彼の/tmpでは完璧に動作しています
マウント後、スクリプト操作中はすべて正常です。しかし、sshfsプロセスを終了させると、親プロセス(Perlスクリプト)が終了するまでpsによって<defunc>としてリストアップされます。シェル上で生のsshfsコマンドを実行しても問題は発生します
マウントポイントのための ls -dl 出力は次のようになります (思い出したように – 私は手元にシェル出力の実際のコピーを持っていません)
? 1 ? ? 4096 Feb 9 15:37 file_archive/
(ほとんどの情報、少なくともすべての許可の詳細については疑問符のみ)
sshfs のマウントは mount でリストアップされたままですが、アンマウント操作は root のようにしてもパーミッションが拒否されて失敗します
Googleで検索してみましたが、ネットワークファイルシステムを実行するためのsshfsとNFSの比較がたくさん出てきました。NFS ディレクトリ内で sshfs のマウント/アンマウントを安全に行うにはどうすればいいですか?
16 Daniel Böhmer 2011-05-30
を実行することで、sshfs 共有をアンマウントできるはずです
fusermount -u /path/to/sshfs/share
37 CJ Travis 2011-05-30
pkill to を使ってプロセスを kill し、マウントされたフォルダパスをアンマウントするだけです
pkill -kill -f "sshfs" && umount /path/to/sshfs/share
15 SAGAR 2014-09-24
この答えはUbuntu 20.04を参照していますが、一般的には、sshfsボリュームを適切にアンマウントするには2つのステップが必要です: i) sshfsプロセスを kill し、ii) sudoを使ってアンマウントします。sudoを使用しないと、たとえパーミッションが正しくても、システムは「デバイスまたはリソースがビジー」や「トランスポートエンドポイントが接続されていません」といったメッセージを報告します
説明書はこんな感じです
killall sshfs
sudo umount -l /path/to/sshfs/share
0 Luís de Sousa 2020-10-08
sudo diskutil umount force ~/mount/
このコマンドはOS Xで動作するようです
-2 Robert Mihai Ionas 2016-02-13

