Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';子流程';调用的进程错误:命令';[…]和#x27;返回非零退出状态1_Python_Subprocess_Stdout_Popen - Fatal编程技术网

Python';子流程';调用的进程错误:命令';[…]和#x27;返回非零退出状态1

Python';子流程';调用的进程错误:命令';[…]和#x27;返回非零退出状态1,python,subprocess,stdout,popen,Python,Subprocess,Stdout,Popen,正在执行以下脚本 import socket import sys from collections import OrderedDict from subprocess import check_output from threading import Thread [……] 。。。导致错误: CalledProcessError:命令'[ping','-q','-c2','-W1','10.

正在执行以下脚本

import socket                   
import sys                          

from collections import OrderedDict
from subprocess import check_output
from threading import Thread    
[……]

。。。导致错误:

CalledProcessError:命令'[ping','-q','-c2','-W1','10.81.3.80']'返回非零退出状态1

检查输出中添加“stderr=STDOUT”没有产生任何有用的反馈


如何获取有关错误的更多信息,以便对其进行故障排除?

正如您的错误消息所述,ping在非零退出状态下完成。这可能意味着,例如,提供的IP地址无法访问,或者您输入了错误的参数

ping
手册页():

如果ping根本没有收到任何回复数据包,它将以代码1退出。如果同时指定了数据包计数和截止日期,并且截止日期到达时收到的数据包少于计数,则它也将以代码1退出。在另一个错误中,它以代码2退出。否则它将以代码0退出。这使得可以使用退出代码查看主机是否处于活动状态

您可以尝试捕获
调用的进程错误
,并查看它在
输出中包含的内容。
查看此处

引发的非零退出代码,如果出现错误(例如未知域名,或站点已关闭,或站点因某种原因被ICMP阻止,或您的Internet连接已关闭),
ping
将返回非零退出代码

如果要同时检查输出代码和退出代码,请使用:

示例:

$ python ping.py google.com         <-- ping successful
ping returned 0
PING google.com (195.64.213.27) 56(84) bytes of data.
64 bytes from cache.google.com (195.64.213.27): icmp_seq=1 ttl=57 time=59.8 ms
64 bytes from cache.google.com (195.64.213.27): icmp_seq=2 ttl=57 time=2.43 ms
64 bytes from cache.google.com (195.64.213.27): icmp_seq=3 ttl=57 time=77.0 ms
64 bytes from cache.google.com (195.64.213.27): icmp_seq=4 ttl=57 time=43.8 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.439/45.802/77.096/27.658 ms

$ python ping.py asdasdas.com       <-- DNS resolved, but site is down
ping returned 1
PING asdasdas.com (69.172.201.208) 56(84) bytes of data.

--- asdasdas.com ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3024ms

$ python ping.py asdasdasdasda.com  <-- DNS failed
ping returned 2
ping: unknown host asdasdasdasda.com
$python ping.py google.com
import subprocess
import sys

site = sys.argv[1]
ping_count = 4
process = subprocess.Popen(['ping', site, '-c', str(ping_count)],
                           stdout=subprocess.PIPE,
                           stderr=subprocess.STDOUT)
returncode = process.wait()
print('ping returned {0}'.format(returncode))
print(process.stdout.read())
$ python ping.py google.com         <-- ping successful
ping returned 0
PING google.com (195.64.213.27) 56(84) bytes of data.
64 bytes from cache.google.com (195.64.213.27): icmp_seq=1 ttl=57 time=59.8 ms
64 bytes from cache.google.com (195.64.213.27): icmp_seq=2 ttl=57 time=2.43 ms
64 bytes from cache.google.com (195.64.213.27): icmp_seq=3 ttl=57 time=77.0 ms
64 bytes from cache.google.com (195.64.213.27): icmp_seq=4 ttl=57 time=43.8 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.439/45.802/77.096/27.658 ms

$ python ping.py asdasdas.com       <-- DNS resolved, but site is down
ping returned 1
PING asdasdas.com (69.172.201.208) 56(84) bytes of data.

--- asdasdas.com ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3024ms

$ python ping.py asdasdasdasda.com  <-- DNS failed
ping returned 2
ping: unknown host asdasdasdasda.com