나는 Popen을 사용하여 서브 프로세스를 시작하는 파이썬 프로그램을 작성 중이다. 하위 프로세스의 stdout을 읽고 필터링을 수행하고 주 프로세스의 stdout에 쓰고 있습니다.파이썬 프로세스가 종료되면 하위 프로세스를 종료 하시겠습니까?
주 프로세스 (cntl-C)를 종료하면 하위 프로세스가 계속 실행됩니다. 하위 프로세스도 어떻게 죽입니까? 하위 프로세스는 오랜 시간 실행하는 것과 같습니다.
컨텍스트 : 한 번에 하나의 하위 프로세스 만 실행 중이므로 표준 출력을 필터링하고 있습니다. 사용자가 다른 것을 시도하기 위해 인터럽트를 결정할 수 있습니다.
저는 파이썬에 익숙하지 않고 창을 사용하고 있습니다. 따라서 부드럽게 해주십시오.
Popen.wait()에 파이썬 문서에서 경고 : 자식 프로세스가 차단 대기되도록 표준 출력 또는 표준 오류 파이프에 충분한 출력을 생성하는 경우 교착 것이 경고 예를 들어
OS 파이프 버퍼가 더 많은 데이터를 받아 들일 수 있습니다. 이것을 피하려면 communicate()를 사용하십시오. –
실제로'signal.signal (signal.SIGINT, handlerFunc)'는 파이썬 2.6.5에서 제대로 작동합니다 (r265 : 79096, 2010 년 3 월 19 일 21:48:26) win32에서 [MSC v.1500 32 비트 (Intel)] ; 방금 해봤 어. – RobM