sshfs
特定の時間(最大1時間)が経過したら、接続を終了したいと思います。つまり、インストールを開始したのと同じコマンドまたはスクリプトをat
使用して接続を開始します。fusermount -u
sshfs
ただし、ファイルが使用中の場合は、接続にファイルがまだ開いているかどうかにかかわらず、コマンドが機能したいのですが、fusermount
これが失敗する可能性があることがわかりました。at
私の経験によると、信頼できる唯一の方法は、fusermount
コマンドをrootとして実行するか、コマンドを介してsshfs
切断kill
することです。
ルートとして実行せずに強制的に切断する他の方法はありますか?問題は、ファイルがまだ開いている間に端末に存在できないことです。ただし、安全のためにコマンドをキャンセルしない限り、接続を切断する必要がありますat
。
答え1
マウントポイントを空にしてSSH接続の終了に興味がない場合は、次のことを実行できますfusermount -z /mount/point
。これにより、マウント解除が遅れます。マウントポイントはマウントに接続されなくなりますが、マウントは次まで消えません。開いているすべてのファイルが閉じられるまですべて。
SSH接続のみを閉じてマウントを気にしない場合は、SFTPサーバープロセスを終了します。これがFUSEの利点です。サービスを提供するプロセスを終了すると消えます。マウントはシステムリソースをロックできません。ファイルシステムにアクセスしようとするプロセスは、エラー(ENOTCONN「転送エンドポイントが接続されていません」)を受け取ります。
そのファイルシステムでファイルが開いているプロセスを終了するには、次のようにします。fuser
コマンド(Fが「file」の最初の文字であることを除いて、FUSEとは関係ありません)。
fuser -k /mount/point