내 파이썬 스크립트 내에서, 백그라운드에서 실행될 명령을 기다리는 다른 파이썬 스크립트를 시작하고 싶습니다.정상적으로 종료 될 때까지 백그라운드에서 실행되는 하위 프로세스는 어떻게 시작합니까?
- 호스트 파이썬 스크립트 (H1)는 서브 프로세스 P1을 시작합니다.
- P1은 단명 작업을 수행합니다. &은 종결 지시를 기다리는 중 취침 예정임을 나타내는 감시를 반환합니다.
- H1 폴링이 반복적으로 반복됩니다. 센티넬을 받으면 다른 IO 바인딩 작업을 수행하고 완료되면 P1이 정상적으로 종료되도록 지시합니다. 즉 획득 한 모든 리소스를 닫습니다.
하위 프로세스 모듈과 관련이 있습니까? 그런 다음 당신의 감시를 감시하고 자식 프로세스에게 메시지를 보낼 p.stdin
에 쓸 p.stdout
및 p.stderr
에서 읽을 수
p=subprocess.Popen([list for the script to execute], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
:
당신이'multiprocessing' 모듈, 또는'threading' 모듈을하고 싶지 않아 이유가 있습니까? 'subprocess' 모듈을 사용하는 파이썬 인터프리터를 별도로 호출하는 것이 가능 합니다만 조금 복잡해집니다. – wim
예, 나는 그것을 과도하게 복잡하게 만드는 직감이 있습니다. – canadadry