새 명령 줄 창에서 자체 프로세스를 포크하는 일부 c 스크립트를 순차적으로 실행하고 완료 될 때 "Press any key to continue..."
을 제공하고 싶습니다. 기술적으로 특수 컴파일러입니다. 그것은 명령 행 윈도우를 팝업하고 컴파일이 성공했는지 여부를 알려줍니다. 각 파일 반복하면서 그러나이 반환 0이해야 전에하고 있습니다 새로운 프로세스가 컴파일 할 것을 명령 줄 창 포크 .. 이것하위 프로세스를 사용하여 프로세스 종료시기 알아 내기
내 첫 번째 시도는
process = subprocess.Popen(cmd)
process.wait()
이었다. 불행히도, 이것은 "계속하려면 아무 키나 누르십시오 ..."라고 기다리지 않고 내 얼굴에서 날려 버립니다. 내부 프로세스가 완료되면 wait()
호출이 전달 된 것 같습니다 (액세스 권한이없는 경우).
대신 "계속하려면 아무 키나 누르십시오 ..."를 기다릴 수 있습니까?
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
completed = False
while not completed:
if process.poll() is not None:
completed = True
print "communicating"
process.communicate("k")
print "communicated"
새로운 코드는 무의식적입니다. 프로세스가 죽을 때까지 기다리는 중입니다 (wait()는 CPU를 과열하지 않고서 만 동일하게 수행합니다). 그리고 나서 죽은 프로세스와 통신하려고합니다. 실행중인 스크립트가 백그라운드에서 새 프로세스를 포크 한 다음 즉시 반환하면 수행 할 수있는 작업이 많지 않습니다. 손자 프로세스의 PID를 가져 와서 os.wait()을 수행해야합니다. –