2017-05-08 1 views
2

나는 모바일 장치에서 로그를 읽기 위해이 코드를 사용하고 있습니다 : 끝없는 하위 프로세스를 올바르게 종료하는 방법은 무엇입니까?

with subprocess.Popen(read_device_logs_cmd, shell=True, stdout=subprocess.PIPE, bufsize=1, 
           universal_newlines=True, errors="replace") as p: 

    for line in p.stdout: 
     save(line) 

그래서 p 끝없이 실행됩니다. 편집 : 중요한 정보,이 하위 프로세스는 스레드에서 실행되므로 다른 부분의 코드에서 하위 프로세스 내부의 루프를 조작 할 수 있습니다.

p을 프로그래밍 방식으로 올바르게 멈추게하려면 어떻게해야합니까?

터미널에서 나는 단지 CTRL + C을해야만합니다.

p.kill() 또는 p.terminate()이 작업을 수행합니까?

답변

2

p.kill()을 사용하면 하위 프로세스를 종료 할 수 있습니다.

관련 문제