python - subprocess.Popen이 명령을 실행한 후 stdout.read()에서 수신한 정보가 비어 있습니다. 라우팅 때문입니까 아니면 자체 프로그램 문제입니까?
PHP中文网
PHP中文网 2017-06-12 09:21:16
0
1
1246

아래 코드는 네트워크 연결을 모니터링하기 위해 매일 사용하는 코드입니다. 반환된 정보는 어제 이전(어제 밤 기준)에 얻을 수 있었지만 어제부터 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()

PHP中文网
PHP中文网

认证0级讲师

모든 응답(1)
学习ing

명령 ping 10.9.88.69는 Linux 환경에서 중지되지 않습니다.
그리고 subprocess.Popen은 기본적으로 결과를 반환하기 전에 명령이 끝날 때까지 기다리므로 차단됩니다.

이럴수도 있지

1. 핑을 일찍 종료시키세요. 핑 수를 지정하려면 -c를 추가하세요. 으아아아

2. 차단을 비차단으로 변경

으아아아

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿