附加strace
会显示很多这些消息:
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)
如何找到程序尝试访问的文件导致poll
系统调用超时?
strace
会生成大量消息,使其难以调试
答案 0 :(得分:21)
如何找到程序尝试访问的文件导致轮询系统调用超时?
调用:
lsof -p <pid>
看看有问题的文件描述符是什么。
您还可以查看Linux上的proc
文件系统:
ls -l /proc/<pid>/fd
答案 1 :(得分:0)
ls -l / proc // fd /->您将获得相应的节点ID。 ss -p | grep->您将获得fd所属的套接字文件路径。