如何避免sshfs冻结?


23

所以问题是这样的:

我已经在Ubuntu 12.04上安装了sshfs,并且尝试连接到几个远程服务器。因此,最初安装似乎成功。有时,Gnome甚至会捡起它,并在屏幕底部显示“找到新设备”框。但是从这里开始,没有什么起作用。或至少没有了。我连接的前几次似乎工作正常,并且我能够传输一些文件,然后我断开了连接,再fusermount -u <folder>重新连接后,麻烦开始了。现在执行sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>完之后,当我将目录更改为安装点时,shell冻结了。ls -al <folder>仅列出远程系统的根目录时,奇怪的是,仅此而已。另外,我尝试过的每个文件浏览器都会冻结cd <folder>

在我看来,由于它确实在第一次运行,因此似乎系统中挂有某种僵尸线程或东西,因此我尝试重新启动但没有运气。

sshfs -V 给出以下内容:

SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12

是的,有什么想法吗?

Answers:


17

如果您从开始使用sshfs -o reconnect,则杀死它挂起的SSH进程将使其重新连接。

首先找到匹配的SSH,例如:

ps -ef
...
user 9644 1 0 11:15 ? 00:00:00 ssh -x -a -oClearAllForwardings=yes -2 <host> -s sftp
...

您可以通过独特的选项集和将sshfs连接到的主机来区分它。然后杀死它,常规的SIGTERM应该就足够了:

kill 9644

这应该使SSHFS启动一个新的SSH会话,并且挂载的文件系统将再次变得响应,并且挂在其上的所有进程将继续进行,好像什么都没发生一样。


仅供参考:首先,此解决方案对于提高sshfs连接的健壮性非常有用:askubuntu.com/a/716618/327339。另请参阅以下常见问题解答中的#11:github.com/libfuse/sshfs/blob/master/FAQ
Gabriel Staples

1

您等待冻结解决了多长时间?您和相关服务器之间可能只是传输问题。

我在系统和生活在赏金中的朋友之间使用sshfs(正式用语!),他在一个陆上无线设备上,偶尔掉线(我们认为他的接收器在风中摇曳,失去了信号锁定)。

如果我等待,它最终确实可以同步并执行操作,但是偶尔它会挂几分钟。

耐心GrassHopper!


2
我尝试等待一些时间,也许10-20分钟,但没有运气。也许只需要几个小时?^^,
Andreas Hagen

一个人希望不要!您可以尝试使用sshfs -d' or sshfs -o LogLevel = Debug`(或“ Debug2”)登录以打开详细模式...看看是否有任何启发性的内容。
lornix 2012年

0

这是一篇老文章,我没有给出最终的解决方案,但我认为我遇到了同样的问题(在Ubuntu 14.04上),并且在我的情况下,懒惰的卸载和重新安装工作(尽管有点烦人):

fusermount -u -z /local/folder
sshfs -C user@server:/remote/folder /local/folder

我怀疑您只是使用来查看缓存的结果ls -al <folder>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.