在我的http请求处理程序函数中,我需要使用不同的uri执行多个HTTP GET测试。 代码如下:

def send_http_msg(command):
    ...
    p = subprocess.Popen("exec " + command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)                                  
    result = p.communicate()

典型的命令是curl --connect-timeout 5 http://1.2.3.4:22

我解决不了的问题是,当send_http_msg()被调用函数,再次调用p.communicate()只是挂,再也不回来。 我也尝试了p.communicate(timeout=10) ,它也挂起,没有看到timeoutExpired异常。

我也尝试了subprocess.check_output() ,它也挂了第二个调用。

python是2.7.3。

请帮忙。

  ask by Bob translate from so

本文未有回复,本站智能推荐:

2回复

Python:subprocess.Popen和subprocess.call挂起

我使用subprocess.Popen或subprocess.call时遇到问题,当我使用subprocess.Popen或subprocess.call执行生成大量输出的命令行时,python脚本会挂起,但是等待一段时间之后,当脚本处于运行状态时有什么奇怪的它的挂起状态,我发现cmd行命令的工
4回复

使用 subprocess.Popen 从 python 调用 pandoc

我有打电话从使用python pandoc问题subprocess.Popen 。 这一切都在控制台中工作。 这是代码。 现在我使用该filename python代码是我的markdown文件的完整路径: 我也尝试了各种方法来捕获错误,但没有奏效。 然而,在控制台中,一切正常:
2回复

Python:使用线程来调用subprocess.Popen多次

我有一个正在运行的服务(Twisted jsonrpc服务器)。 当我调用“ run_procs”时,服务将查看一堆对象并检查其timestamp属性以查看它们是否应运行。 如果需要,则将它们添加到thread_pool(列表)中,然后thread_pool中的每个项目都将调用start()
1回复

Python:subprocess.popen()

我有一个关于subprocess.popen()的问题: 如果假设执行的命令是在while循环中 - 是否有任何方法让subprocess.popen()检测它并在打印第一个输出后退出? 或者有没有其他方法来打印结果? 如您所见,在Linux机器上执行的以下程序只是继续执行:
3回复

在Python中拦截subprocess.Popen调用

我正在编写一个遗留Python脚本的功能测试,以便我可以对其进行单行更改而不会因恐惧而陷入瘫痪。 ;) 有问题的脚本使用subprocess.Popen调用wget(1)来下载XML文件,然后解析该文件: 显然,最好修改脚本以使用HTTP库而不是执行wget,但正如我所说,它是一
1回复

Python:subprocess.Popen()。communicate()将SSH命令的输出打印到标准输出,而不是返回输出

这是我的python终端的副本: 我希望输出是('myhost', None) 。 为什么输出未存储在return元组中,以便进行communication()?
2回复

调试subprocess.Popen调用

我一直在成功使用subprocess.Popen ,当用python脚本包装二进制文件来格式化参数/自定义等... 开发第n个包装器,我像往常一样......但没有任何反应。 这是小代码: 这是输出: 如您所见,目标是创建一个shell脚本来设置我需要的所有内容,然后
1回复

从Django调用subprocess.Popen

我在Django中使用以下Python代码从Django运行Perl脚本。 将代码从Ubuntu 10:04移动到12:04 ,对p.stdout.read()的调用已经开始失败。 当它失败时,我在日志文件中看到的最后一件事是closed stdin ,nginx显示502 Bad G