【发布时间】:2010-09-29 07:30:07
【问题描述】:
默认情况下,Python 的子进程模块将所有打开的文件描述符传递给它产生的任何子进程。这意味着如果父进程正在侦听端口并被杀死,它无法重新启动并再次开始侦听(即使使用 SO_REUSEADDR),因为子进程仍然拥有该描述符。我无法控制子进程。
子进程 POpen 构造函数确实接受一个 close_fds 参数,它会关闭子进程上的描述符,就像我想要的那样。但是,只有在 Windows 上存在一个限制,如果 stdin/stdout 也被覆盖,则无法使用它,我需要这样做。
有人知道在 Windows 上解决此问题的方法吗?
【问题讨论】:
标签: python windows subprocess popen