我正在尝试在 python 中使用 fork 编写套接字服务器。当客户端连接时,会以某种方式创建一个新的分叉,并且这个分叉进程将处理包括发送/接收在内的连接。
我在 Linux 上运行此脚本centOS
并监视资源htop/top
以查看显示了多少分叉(任务)。问题是当我使用os._exit(0)
htop 杀死一些叉时不会改变(自然必须通过杀死叉来减少它)并且当我关闭 python 脚本时,一切都会恢复正常(Ram 使用和任务)。
所以当我通过使用杀死一些叉子时我必须做些什么,另一方面os._exit(0)
它会影响htop
释放所有资源并且不要等到它自己的父级被杀死?
这是创建分叉的代码:
def test(sock):
//handle socket then return
for i in range (1000):
sock,addr=socket.accept()
pid=os.fork()
if pid==0:
test(sock)
os._exit(0)
elif pid !=-1:
os.waitpid(-1, os.WNOHANG)