我的 sshfs 挂载有时会失败。
发生这种情况时,所有使用 mount 的程序都会冻结。我甚至无法执行任何操作或使用 nautilus。
有没有办法找出原因并如何处理?
我注意到与服务器的常规 SSH 会话Write failed: broken pipe
也会出现相当多的断开连接的情况。
如果我等待足够长的时间(我指的是 20 分钟左右),它将自动重新连接并且一切开始重新工作。
答案1
最好的方法可能是,假设挂载点是 /mnt/sshfs,运行以下命令:
卸载-l /mnt/sshfs
这是一个“懒惰”卸载,只能以 root 身份运行。它将立即卸载 sshfs 文件系统,然后让内核清理混乱。小心不要用 tab 完成它,因为如果您多次按下 tab 键并尝试在挂载点内读取,则可能会出现冻结的风险!
稍等片刻,您就可以安全地重新挂载文件系统。
尝试将“-o ServerAliveInterval=30”添加到您的 sshfs 命令中,看看它是否能停止冻结。它基本上只是强制 ssh 客户端每 30 秒发送一个数据包以表明它仍然存在。您还可以通过添加如下行将其添加到您的 .ssh/config 中:
服务器存活间隔 30
不过,我不能 100% 确定 sshfs 是否读取了 .ssh/config 文件。