python BaseHTTPServer重启失败,提示端口被占用

简介: 有一个BaseHTTPServer,名为A,监听端口12346;它有10个子进程,通过os.system("nohup xxxx &")启动,也是BaseHTTPServer,名字分别为B0~B9,分别监听9000~9009。
有一个BaseHTTPServer,名为A,监听端口12346;它有10个子进程,通过os.system("nohup xxxx &")启动,也是BaseHTTPServer,名字分别为B0~B9,分别监听9000~9009。A将接收到的请求分发给B0~B9处理。

当重启A时,会提示端口12346被占用,占用者是Bx。原因是A的socket fd被Bx所继承了,A关闭后,Bx取得监听权,端口被占用,导致A无法重启。

解决方法:使用subprocess.Popen('nohup xxx &',shell=True,close_fds=True),close_fds=True将子进程0,1,2以外的所有fd关闭。
在打开socket时,指定close-on-exec标志也可以。
目录
相关文章
|
6月前
|
Python
Python网络编程基础(Socket编程)绑定地址和端口
【4月更文挑战第9天】在UDP服务器编程中,我们首先需要创建一个UDP套接字,然后绑定一个本地地址和端口,以便客户端可以通过这个地址和端口与我们的服务器进行通信。下面,我们将详细讲解如何绑定地址和端口。
|
6月前
|
人工智能 Shell 程序员
[oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit
[oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit
50 0
|
1月前
|
Python
Python编程--使用NMAP端口扫描
Python编程--使用NMAP端口扫描
|
1月前
|
网络安全 Python
Python编程--目标IP地址段主机指定端口状态扫描
Python编程--目标IP地址段主机指定端口状态扫描
|
2月前
|
Linux Python
用python扫描linux开放的端口(3种方式)
这篇文章介绍了三种使用Python实现Linux端口扫描的方法,包括基础版端口扫描、全端口扫描和多线程扫描技术。
58 15
|
27天前
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。
|
2月前
|
监控 网络协议 数据库连接
Python3 监控端口:使用 socket 库
Python3 监控端口:使用 socket 库
|
2月前
|
监控 网络协议 数据库连接
Python3 监控端口:使用 socket 库
Python3 监控端口:使用 socket 库
|
3月前
|
网络安全 数据安全/隐私保护 Python
Python 渗透测试:文件传输爆破( 21端口 )
Python 渗透测试:文件传输爆破( 21端口 )
33 2
下一篇
无影云桌面