2012-02-09 6 views
2

파이썬 응용 프로그램에서 프로그램을 실행하려면 백그라운드에서 실행되지만 결국 포 그라운드로 이동합니다.파이썬 : 포크, 파이프 및 exec

GUI와 상호 작용하는 데 사용됩니다. 하지만 콘트롤은 stdin과 stdout 콘솔을 통해 제공됩니다. 내 응용 프로그램의 GUI를 사용하여 제어 할 수 있도록하려면, 그래서 내 첫번째 생각했다 : 그들에게

  • 간부 아이를 액세스하기 위해

      부모, dup2에의 표준 입력과 표준 출력에
    • 포크

    이것은 쉽게 파이썬으로 구현할 수 있습니까? 내가 원하는 것을 성취 할 수있는 또 다른 방법이 있는가?

  • +1

    대답은 "예"와 "예"됩니다. 당신이 쓴 질문에 대한 대답은 도움이되지 않습니다. ** 당신이 알고 싶은 것을 명확히하기 위해 질문 **을 ** 업데이트하십시오. –

    답변

    6

    이 표준 파이썬 서브 프로세스 모듈을 사용하여 비교적 간단하다

    http://docs.python.org/py3k/library/subprocess.html

    +0

    실제로, 나는이 길로 갈 것이다. 다행히도 2.X 모듈을 찾고있었습니다. 오랫동안 존재 해 왔습니다 (http://docs.python.org/library/subprocess.html). – Aki

    3

    구조가 복잡하지 않습니다.

    확인

    if os.fork(): 
    os._exit(0) 
    os.setsid() 
    os.chdir("/") 
    fd = os.open("/dev/null", os.O_RDWR) 
    os.dup2(fd, 0) 
    os.dup2(fd, 1) 
    os.dup2(fd, 2) 
    if fd 2: 
    os.close(fd) 
    

    이 파이썬 코드는 id를 설정하는 디렉토리를 변경이 예는 파일 및 프로세스 닫기를 엽니 다!

    +0

    어쩌면 내가 C에서 그것을 어떻게 할 것이지만, 파이썬이 이것을 간단하고 이식 가능한 방법으로 얻을 수있는 몇 가지 모듈을 갖기를 바랍니다. – Aki