파이썬 하위 프로세스가 Windows에서 FDS를 전달하는 것을 방지합니까?

StackOverflow https://stackoverflow.com/questions/408039

문제

Python의 하위 프로세스 모듈은 기본적으로 모든 열린 파일 설명자를 전달하는 모든 어린이 프로세스로 전달합니다. 이것은 부모 프로세스가 항구에서 듣고 있고 죽인 경우, 자녀가 여전히 해당 설명자를 소유하고 있기 때문에 다시 시작하고 다시 듣기 시작할 수 없음을 의미합니다. 나는 아동 과정을 통제 할 수 없습니다.

하위 프로세스 인 Popen 생성자는 Close_FDS 인수를 수락하며, 원하는대로 어린이의 설명자를 닫습니다. 그러나 Windows에서만 제한 사항이 있으며 STDIN/STDOUT도 재정의 된 경우 사용되지 않도록합니다.

Windows 에서이 작업에 대한 작업을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

내가 찾을 수있는 가장 관련성있는 정보는 다음과 같습니다. SethandleInformation, 참조 이것 기사, 당신에게 포인터를 주어야합니다.

원하는 것을 달성하려면 pywin32 및/또는 ctypes를 사용해야 할 것입니다.

다른 팁

주변에 Windows 상자가 없으므로 테스트되지 않았지만 OS.Dup 및 OS.Dup2 메소드를 사용해 보려고 유혹을받습니다. 파일 디스크립터를 복제하고 부모 대신에 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top