6

我的 php 代码中的 libcurl 似乎无限期地卡在poll调用中。当我对进程 ID 进行 strace 时,

[user@server ~]$ sudo strace -p 19559
Process 19559 attached - interrupt to quit
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout) 
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)

这种情况无限期地进行。fd 7 在 /proc/19559/fd 中显示为

lrwx------ 1 root root 64 Sep 19 19:44 7 -> socket:[335178801]

有人可以告诉我为什么会这样。超时时我该怎么做才能使 libcurl 退出

4

1 回答 1

6

curl_setopt如果设置为非零值,则选项CURLOPT_CONNECTTIMEOUT将使 curl 在超时时失败。

于 2012-09-26T06:58:54.513 回答