私の同僚は、/home
がファイルサーバーで共有されているデスクトップコンピューターを持っています。私のラップトップで正常に動作する別のSSHホスト上の特定のディレクトリをsshfs
- mountingするためのPerlスクリプトを開発しました。
彼のコンピューターでは、スクリプトは最後にsshfs
のマウントを解除できず、マウントポイントをクリーンにしません。再起動する以外にマウントポイントを回復する方法が見つかりませんでした。いくつかのテストを行った後、セットアップの違いは彼の/home
がNFS上にあるということです。彼の/tmp
では、問題なく動作します。
マウント後、スクリプト操作中はすべて問題ありません。ただし、sshfs
プロセスを強制終了すると、親プロセス(Perlスクリプト)が終了するまで、ps
によって<defunc>
としてリストされます。シェルでraw sshfs
コマンドを実行しても、問題は引き続き発生します。
マウントポイントのls -dl
出力は次のようになります(覚えているとおり-シェル出力の実際のコピーは手元にありません)。
? 1 ? ? 4096 Feb 9 15:37 file_archive/
(ほとんどの情報には疑問符のみ、少なくともすべての許可の詳細)
Sshfsマウントは引き続きmount
によってリストされますが、アンマウント操作はroot
として実行している場合でも、エラーpermission deniedで失敗します。
私はGoogleを検索しましたが、ネットワークファイルシステムを実行するためのsshfsとNFSの間の多くの比較しか見つかりませんでした。 NFSディレクトリでsshfsマウント/アンマウントを安全に行うにはどうすればよいですか?
次のコマンドを実行すると、sshfs共有をマウント解除できるはずです。
fusermount -u /path/to/sshfs/share
Pkill toを使用してプロセスを強制終了し、マウントされたフォルダパスをマウント解除します。
pkill -kill -f "sshfs" && umount /path/to/sshfs/share
Sudo diskutil umount force ~/mount/
このコマンドはOS Xで機能するようです。