从networking连接读取时,进程无限期挂起
更新如下: 我在一个不相关的脚本上经历了类似的问题,在不同的数据中心的Debian虚拟机上。 这看起来像这里描述的问题(和像问这个问题的人一样,我没有在服务器前configuration代理)。 与以下描述的主要区别在于,当我附加到挂起的进程时,我看到一个调用recvfrom而不是read : $ strace -p 17527 Process 17527 attached – interrupt to quit recvfrom(3, 不过Python并没有被代理的印象: >>> import os; print os.getenv("HTTP_PROXY"), os.getenv("http_proxy") None, None 所以我仍然难住。 可悲的是,这个相关的问题也没有最终的答案。 (我也想知道这个问题是否是相关的,但是S3似乎不太可能不尊重Connection: close headers。) 我有几个Debian(Wheezy,x86_64)服务器都显示以下行为: 所有服务器都有一组cron作业,其中包括从S3中提取数据。 这些通常运行良好,但偶尔ps aux显示,几小时或几天前开始的一些工作仍在运行,并没有完成干净。 使用strace -p <pid>检查它们显示,在所有情况下,该进程都挂在一个读取命令上。 例如,我刚刚检查的一个进程的输出是: $ strace -p 12089 Process 12089 attached – interrupt to quit read(5, 检查打开的文件描述符给了我这个: $ sudo lsof […]