use*_*507 7 networking sshfs strace
我不知道如何调试这种情况:
1)我尝试执行:
ls /home/user
Run Code Online (Sandbox Code Playgroud)
2) ls 阻止并且不打印任何内容。我认为这是因为 /home/user 包含 /home/user/sshfs_files,这是一个 sshfs 挂载目录,但我的机器上的网络出现故障(网络再次启动,但我猜 SSH 连接已丢失)。
3) 因为我想确定挂载的目录是 sshfs 的原因,所以我在 strace 下尝试了相同的命令:
strace -o /tmp/log ls /home/user
Run Code Online (Sandbox Code Playgroud)
4) ls 确实有效!所以现在的情况是 ls 在 strace 下工作但它自己阻塞。
怎么可能?如何解释这种情况?如果 ls 没有在 strace 下阻塞,我如何查看它的阻塞位置?
谢谢!
正如jw13 所指出的,这几乎是“ ls 在小目录中花费很长时间”的完全重复——至少就解释而言。请务必阅读那里的评论!
简而言之,当一些流行的命令行程序ls的输出不直接进入终端时,它们的运行方式可能会有所不同。在这种情况下,ls可能别名为ls --color=auto,为了着色目的,尝试检测每个目录条目的类型。此时它挂起,无法stat对您的 sshfs 挂载目录执行操作。
添加到MadScientist 对上述问题的回答:如果您对如何strace或gdb可以帮助调试ls' 行为感到好奇,我建议您运行类似
strace -o /tmp/log ls --color=always /home/user
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |