Mount

是否有使用者級的萬無一失的方法來強制終止 sshfs 連接?

  • October 2, 2016

我希望sshfs在一段時間後終止連接,最多一個小時,這意味著在我用來啟動掛載的同一命令或腳本中啟動該at命令。fusermount -u``sshfs

但是我注意到,fusermount如果文件正在使用中,則可能會失敗,儘管我希望at命令能夠在連接中仍然打開文件的情況下工作。

根據我的經驗,唯一可靠的方法是以fusermountroot 身份執行命令或通過命令終止sshfs連接kill

有沒有其他方法可以在不以 root 身份執行的情況下強制斷開連接?at問題是當文件仍然打開時我可能不在終端,但為了安全起見,除非我取消命令,否則必須斷開連接。

如果您只想釋放掛載點,而不關心終止 SSH 連接,則可以執行fusermount -z /mount/point. 這將執行延遲解除安裝:掛載點不再與掛載關聯,但掛載不會消失,直到該掛載上所有打開的文件都關閉。

如果你只想關閉 SSH 連接而不關心掛載,你可以簡單地殺死 SFTP 伺服器程序。這就是 FUSE 的美妙之處:殺死提供服務的程序,它就消失了。掛載不能鎖定係統資源。嘗試訪問文件系統的程序將收到錯誤(ENOTCONN“傳輸端點未連接”)。

如果您想殺死在該文件系統上打開文件的程序,您可以使用該fuser命令(與 FUSE 無關,除了 F 是“文件”的第一個字母)。

fuser -k /mount/point

引用自:https://unix.stackexchange.com/questions/313852