用 strace docker build.....的过程中,发现在 npm install --registry=xxx.com 那一步,有些问题:
read(5, 0xc00048d000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
epoll_pwait(4, {{EPOLLOUT, {u32=3554582280, u64=139937884053256}}}, 128, 0, NULL) = 1
epoll_pwait(4, {{EPOLLIN|EPOLLOUT, {u32=3554582280, u64=139937884053256}}}, 128, -1, NULL) = 1
futex(0x7f45d8a0b0d0, FUTEX_WAKE_PRIVATE, 1) = 1
read(5, "33\r\n{\"stream\":\" ---\\u003e Runnin"..., 4096) = 57
write(1, " ---> Running in 161d1d6bb0fc\n", 30 ---> Running in 161d1d6bb0fc
) = 30
read(5, 0xc00048d000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
epoll_pwait(4, {}, 128, 0, NULL) = 0
epoll_pwait(4, // [在这卡住不动了]
有两个不太理解的地方,请老哥指点:
根据 linux read 的描述 ssize_t read(int fd, void *buf, size_t count);
read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf.
1
AoEiuV020CN 2022-10-28 11:30:58 +08:00 1
没有特定含义,就是按顺序,除了 012 固定打开的,下一个打开的广义上的“文件”,的文件描述符就是 3 ,再下一个就是 4 ,以此类推,
|
2
LaTero 2022-10-28 13:01:20 +08:00 via Android
strace 加参数-yy 就能看到是什么
|
3
kakalala 2022-10-28 13:06:12 +08:00 via Android 1
strace -e "openat"
|
4
julyclyde 2022-10-28 13:32:13 +08:00
往回翻一翻,应该有个什么函数的返回值等于 4 和 5
看这个函数打开了什么资源 我猜一下可能是个网络连接吧?因为我看 read 5 的内容有点像 json |
5
wtfedc OP |
6
julyclyde 2022-10-28 16:23:36 +08:00 1
@wtfedc 那可能还有一个 connect 5 在你这句后面,你看看它 connect 了啥地址
应该是个文件名,unix domain socket |
7
hsfzxjy 2022-10-28 19:39:23 +08:00 via Android
可以去 /proc/<pid>/fd 看是什么文件
|