我希望sshfs
連接在一段時間後終止,最多一小時,這意味著使用at
與fusermount -u
啟動安裝相同的命令或腳本啟動該命令sshfs
。
但是我注意到,fusermount
如果文件正在使用中,則可能會失敗,儘管我希望at
無論連接中是否仍有文件打開,該命令都可以工作。
根據我的經驗,唯一可靠的方法是以fusermount
root 身分執行命令或sshfs
透過kill
命令終止連線。
有沒有其他方法可以在不以 root 身分運行的情況下強制斷開連線?問題是當文件仍然打開時我可能不在終端,但為了安全起見,除非我取消命令,否則必須斷開連接at
。
答案1
如果您只想釋放掛載點,而不關心終止 SSH 連接,則可以運行fusermount -z /mount/point
.這將執行延遲卸載:掛載點不再與掛載關聯,但掛載不會消失,直到該掛載上的所有開啟的檔案都關閉為止。
如果您只想關閉SSH連線而不關心掛載,則可以簡單地殺死SFTP伺服器程序。這就是 FUSE 的美妙之處:殺死提供服務的進程,它就會消失。掛載無法鎖定係統資源。嘗試存取檔案系統的進程將收到錯誤(ENOTCONN「傳輸端點未連線」)。
如果您想終止在該檔案系統上開啟檔案的進程,您可以使用fuser
指令(與 FUSE 無關,除了 F 是「file」的第一個字母)。
fuser -k /mount/point