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,027评论 0 2
  • 参考链接:http://blog.csdn.net/sweetsnow24/article/details/863...
    Tony1213阅读 4,509评论 0 0
  • 昨晚说了几句话 放下手机等待时 又不小心找周公去了 早上醒来 发现老司机的留言 又是一点半甚至更晚才睡 不听话的宝...
    Alen23阅读 122评论 0 0
  • 相思苦,苦相思, 相见几何未可知, 唯有梦相依 相思苦,苦相思, 相爱几何天可知, 唯盼相偎依
    晨定阅读 196评论 0 1
  • 没有思考的人生是不值得过的人生。 我的人生分为两部分,四十岁之前和四十岁之后 四十之前有小聪明 如蜻蜓点水,浅尝辄...
    史终成长阅读 268评论 1 1