執行下面的腳本...Python的 '子' CalledProcessError:命令 '[...]' 返回非零退出狀態1
import socket
import sys
from collections import OrderedDict
from subprocess import check_output
from threading import Thread
[...]
class IpCheck(Thread):
RECEIVED_PACKAGES_RE = re.compile(r'(\d+) received')
def __init__(self, ip):
Thread.__init__(self)
self.ip = ip
self.result = None
def run(self):
match = self.RECEIVED_PACKAGES_RE.search(
check_output(['ping', '-q', '-c2', '-W1', self.ip])
)
successful_ping_count = int(match.group(1)) if match else 0
if successful_ping_count == 0:
self.result = 'no response'
elif successful_ping_count == 1:
self.result = 'alive, but 50% package loss'
elif successful_ping_count == 2:
self.result = check_snmp(self.ip)
else:
assert False
[...]
...導致一個錯誤:
CalledProcessError: Command '[ping', '-q', '-c2', '-W1', '10.81.3.80 ']' returned non-zero exit status 1
在check_output
添加「標準錯誤= STDOUT」沒有產生任何有用的反饋。
如何獲取有關錯誤的更多信息以便我可以排除故障?