“ls”命令在尝试列出过时的挂载点时卡住了。你如何杀死/阻止它?

Und*_*nel 5 command-line ls remote

使用sshfs或等远程文件系统时smbfs,可能会发生由于网络问题文件系统变得陈旧的情况。要检查挂载是否陈旧,我通常使用该命令ls查看是否可以列出远程挂载的内容。当这些远程安装失效时,该ls命令会等待很长时间,直到几分钟后输出以下内容:

ls: cannot access '/mnt/remote': Input/output error
Run Code Online (Sandbox Code Playgroud)

有没有办法ls同一个 bash 会话中停止命令,而不是等待这个错误?常规的 Control+C 似乎无法完成这项工作。关闭 bash shell 有效,但这是不可取的。任何替代方案?

cha*_*aos 5

不,由于ls(或任何其他文件操作进程)处于“不间断睡眠”进程状态,因此没有什么可以中断它,甚至SIGKILL不能。

也许您可以在挂载远程文件系统时降低超时值。sshfsServerAliveIntervalServerAliveCountMax