我正在尝试从运行在apache2/WSGI Python中的Django应用程序中派生()和执行()一个新的python脚本进程。新的python进程是守护进程,因此它与apache2没有任何关联,但我知道HTTP端口仍然是打开的。新进程杀死了apache2,但结果是新的python进程现在保持端口80和443打开,而我不希望这样。
如何在新的python进程中关闭端口80和443?有没有办法访问套接字句柄描述符,以便将其关闭?
发布于 2012-10-18 12:43:36
如果使用subprocess模块执行脚本,则Popen构造函数的close_fds参数可能会执行您想要的操作:
如果close_fds为true,则在执行子进程之前,将关闭除0、1和2之外的所有文件描述符。
假设它们不是简单地关闭,前三个文件描述符传统上是stdin、stdout和stderr,所以Django应用程序中的侦听套接字将在子进程中关闭。
https://stackoverflow.com/questions/12946708
复制相似问题