아래 코드는 네트워크 연결을 모니터링하기 위해 매일 사용하는 코드입니다. 반환된 정보는 어제 이전(어제 밤 기준)에 얻을 수 있었지만 어제부터 stdout.read()에서 읽은 내용은 비어 있었습니다. 제가 CMD 창에서 직접 호스트에 ping을 하여 반환된 정보는 China Unicom이고, 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()
学习ing2017-06-12 09:23:16
명령 ping 10.9.88.69는 Linux 환경에서 중지되지 않습니다.
그리고 subprocess.Popen은 기본적으로 결과를 반환하기 전에 명령이 끝날 때까지 기다리므로 차단됩니다.
이럴수도 있지
1. 핑을 일찍 종료시키세요. 핑 수를 지정하려면 -c를 추가하세요. 으아아아
2. 차단을 비차단으로 변경으아아아