繁体   English   中英

在Django中分叉后关闭TCP端口80和443

[英]Close TCP port 80 and 443 after forking in Django

我正在尝试从一个在apache2 / WSGI Python中运行的Django应用程序中fork()和exec()一个新的python脚本进程。 新的python进程被守护进程,因此它不与apache2保持任何关联,但我知道HTTP端口仍处于打开状态。 新进程杀死apache2,但结果是新的python进程现在保持端口80和443打开,我不想要这个。

如何在新的python进程中关闭端口80和443? 有没有办法获得对套接字句柄描述符的访问权限,以便它们可以被关闭?

如果您使用的subprocess模块来执行脚本,该close_fds参数传递给Popen构造可能会做你想要什么:

如果close_fds为true,则在执行子进程之前将关闭除0,1和2之外的所有文件描述符。

假设它们不是简单地关闭,前三个文件描述符传统上是stdinstdoutstderr ,因此Django应用程序中的侦听套接字将在子进程中关闭。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM