我希望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