默認情況下,Python的子進程模塊將所有打開的文件描述符傳遞給它所產生的任何子進程。這意味着如果父進程在端口上偵聽並被終止,它將無法重啓並重新開始偵聽(即使使用SO_REUSEADDR),因爲子進程仍然擁有該描述符。我無法控制子進程。阻止Python子進程在Windows上傳遞fds?
子進程POpen構造函數確實接受close_fds參數,這會關閉子對象上的描述符,就像我想的那樣。但是,只有在Windows上有一個限制,如果stdin/stdout也被覆蓋了,那麼這個限制就不能使用了,我需要這樣做。
有沒有人知道在Windows上解決這個問題?
我不確定我是否理解;我將重複哪些描述符,以及我將如何使用它們? – DNS 2009-01-02 21:26:06