>  기사  >  백엔드 개발  >  스레드와 함께 subprocess.Popen 클래스를 사용하고 있는데 작동하지 않습니다.

스레드와 함께 subprocess.Popen 클래스를 사용하고 있는데 작동하지 않습니다.

WBOY
WBOY앞으로
2024-02-22 13:13:11682검색

我正在使用带有线程的 subprocess.Popen 类,但它对我不起作用

질문 내용

다음 파일이 있습니다:

ping.py:

으아악

main.py:

으아악

이 프로그램의 목표는 네트워크 장치가 ping이 가능한지 확인하는 것입니다. main.py 파일을 실행 중인데 잘못된 결과가 나타납니다. 디버깅을 해봤는데 스레드 문제인 것 같은데 해결이 안되네요.

어떤 도움이라도 대단히 감사하겠습니다


정답


일부 관찰

  • 앞서 언급했듯이 ping_cmd 追加更多内容,您的命令将拥有越来越多的 ip 地址。最好每次构建一个新命令,而不是附加到 ping_cmd목록

    에 계속 추가되시네요
  • 이 라인을 고려해보세요

    으아악

    리눅스 출력을 보면 다음과 같습니다:

    으아악

    코드에서 ttl(대문자)을 검색하면 항상 false가 됩니다. 또한, 텍스트를 검색하기 위해 정규 표현식을 사용할 필요가 없습니다:

    으아악
  • 글을 올리지 않으셨으니 utilities 包的内容,因此我不知道 packet_cout 해당 항목은 무엇인가요

  • 멀티스레딩을 다룰 때는 print 대신 logging를 사용하는 것이 좋습니다. 전자는 스레드로부터 안전하지만 후자는 그렇지 않기 때문입니다.

여기에 제가 제안한 솔루션이 있습니다

으아악

위 내용은 스레드와 함께 subprocess.Popen 클래스를 사용하고 있는데 작동하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제