2011-02-28 2 views
1

저는 몇 시간 후에 서버에서 실행되는 python 스크립트를 가지고 있으며 많은 쉘 하위 프로세스를 호출합니다. 호출 된 프로그램 중 어느 것도 프롬프트를 표시해서는 안되지만 때로는 발생하고 스크립트가 멈추고 사용자 (me)가주의를 기울이고 화를 낼 때까지 입력을 기다립니다. :)python subprocess : 프로세스가 프롬프트 할 때 오류 발생

시도 : 파이썬 하위 프로세스 문서에 설명 된대로 p.communicate()를 stdin = PIPE와 함께 사용하십시오.

실행 : 우분투 10.10, 파이썬 2.6

내가 프롬프트에 응답하고 싶지 않아, 나는 스크립트가 오류가 발생하고 계속합니다. 이견있는 사람?

감사합니다. 알렉산더.

답변

0

작업이 완료 될 때까지 기다리는 동안 제한 시간이 필요하고 스크립트에서 프로세스를 종료하거나 종료해야합니다 (오류 발생 이외에도).

1

서브 프로세스의 모든 문제를 포괄적으로 해결하기 위해 모든 셸 호출에 대해 시간 초과를 사용하는 것이 좋습니다. subprocess 모듈 호출에는 내장 된 타임 아웃 지원이 없으므로 신호를 사용해야합니다. 세부 정보는 여기를 참조하십시오 : Using module 'subprocess' with timeout

0

Pyexpect는 출력을 생성 할 수있는 (결과적으로 입력이 필요할 수있는) 하위 프로세스를 처리하기위한 Python 도구입니다. 시간 초과 관리를 포함하여 다양한 경우를 쉽게 처리하는 데 도움이됩니다.

참조 : http://www.noah.org/wiki/pexpect

관련 문제