php curl連接未釋放,strace結果:poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)

一、現象

1.查看進程是否存在

ps -ef | grep -v 'grep' |grep -E 'shell/cron/bonus/cash'

www? ? ? 2624? ? 1? 0 Oct24 ?? ? ? ? 00:00:35 /usr/local/bin/php /data1/www/htdocs/hb.e.weibo.com/v2/www/htdocs/index.php --uri=shell/cron/bonus/cash --get=proc_num=1&proc_total=1 --post=


2.查看進程創建時間

ps -p 2624 -o lstart

STARTED

Sat Oct 24 22:20:03 2015


3.查看進程的系統調用

strace -p 2624

Process 2624 attached - interrupt to quit

restart_syscall(<... resuming interrupted call ...>) = 0

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)


4.查看fd=5打開的文件

lsof -d 5 | grep 2624

php? ? ? ? 2624? ? ? www? ? 5u? IPv4? ? ? ? 3876970637? ? ? 0t0? ? ? ? TCP 10.74.14.199:45473->host-31.alipay.com:https (ESTABLISHED)


二、復現

1. 偵聽107.170.249.52的1234端口

nc -l 1234

2.訪問107.170.249.52:1234

curl http://107.170.249.52:1234

3.107.170.249.52接到該請求

4.strace該curl進程

5.與上文所述現象一致

三、解決

法1:

php curl調用時設置超時

法2:

___

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文摘抄自linux基礎編程 IO概念 Linux的內核將所有外部設備都可以看做一個文件來操作。那么我們對與外部設...
    VD2012閱讀 1,025評論 0 2
  • 參考鏈接:http://blog.csdn.net/sweetsnow24/article/details/863...
    Tony1213閱讀 4,476評論 0 0
  • 昨晚說了幾句話 放下手機等待時 又不小心找周公去了 早上醒來 發現老司機的留言 又是一點半甚至更晚才睡 不聽話的寶...
    Alen23閱讀 122評論 0 0
  • 相思苦,苦相思, 相見幾何未可知, 唯有夢相依 相思苦,苦相思, 相愛幾何天可知, 唯盼相偎依
    晨定閱讀 182評論 0 1
  • 沒有思考的人生是不值得過的人生。 我的人生分為兩部分,四十歲之前和四十歲之后 四十之前有小聰明 如蜻蜓點水,淺嘗輒...
    史終成長閱讀 257評論 1 1