下面的代码是我日常用来监测网络联通性的,昨天之前(截止到前天晚上)都可以获取到返回的信息,而昨天开始stdout.read()读到的内容就是空。 我直接在CMD窗口ping主机返回的信息是联通的,用call方法取到的返回信息也正常。请大神帮忙解惑
cmd='ping 10.9.88.69'
P=subpross.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
reshult=p.stdout.read()
你这个命令ping 10.9.88.69 在linux环境下是不会停止的,
而且subprocess.Popen默认是等待命令结束才返回结果,是阻塞的
可以这样
1.让ping早点结束 加多个以参数 -c 指定下ping的次数
2.把阻塞变为不阻塞