如何根据Python中占用的端口获取套接字FD?
在我的程序中,一个永远服务的守护进程在一个子进程中重新启动 该程序本身是一个web服务,默认情况下使用端口5000 我不知道该守护进程的启动脚本的细节,但它似乎继承了监听端口5000的套接字 因此,如果我重新启动我的程序,我会发现端口已经被守护进程占用如何根据Python中占用的端口获取套接字FD?,python,linux,sockets,subprocess,Python,Linux,Sockets,Subprocess,在我的程序中,一个永远服务的守护进程在一个子进程中重新启动 该程序本身是一个web服务,默认情况下使用端口5000 我不知道该守护进程的启动脚本的细节,但它似乎继承了监听端口5000的套接字 因此,如果我重新启动我的程序,我会发现端口已经被守护进程占用 现在我正在考虑微调子流程函数以关闭继承的套接字FD,但我不知道首先如何获取FD。这似乎是一个权限问题。子流程可能以其他用户的身份运行,因此您将无法访问该流程。使用sudo ps xauw | grep[processname]来计算守护进程在哪个
现在我正在考虑微调子流程函数以关闭继承的套接字FD,但我不知道首先如何获取FD。这似乎是一个权限问题。子流程可能以其他用户的身份运行,因此您将无法访问该流程。使用
sudo ps xauw | grep[processname]
来计算守护进程在哪个用户下运行。这似乎是一个权限问题。子流程可能以其他用户的身份运行,因此您将无法访问该流程。使用sudo ps xauw | grep[processname]
来计算守护进程在哪个用户下运行。有close\u fds
参数(subprocess.Popen
),在Unix上可以安全地设置为True
(在Python 3上是默认设置)。尽管您不需要它:在分叉之前,a应该关闭所有打开的文件描述符本身
无关:如果您希望您的程序能够在Unix上有一个可以安全设置为
True
的close\u fds
参数(subprocess.Popen
)。尽管您不需要它:在分叉之前,a应该关闭所有打开的文件描述符本身
无关:如果您希望您的程序能够