Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据Python中占用的端口获取套接字FD?_Python_Linux_Sockets_Subprocess - Fatal编程技术网

如何根据Python中占用的端口获取套接字FD?

如何根据Python中占用的端口获取套接字FD?,python,linux,sockets,subprocess,Python,Linux,Sockets,Subprocess,在我的程序中,一个永远服务的守护进程在一个子进程中重新启动 该程序本身是一个web服务,默认情况下使用端口5000 我不知道该守护进程的启动脚本的细节,但它似乎继承了监听端口5000的套接字 因此,如果我重新启动我的程序,我会发现端口已经被守护进程占用 现在我正在考虑微调子流程函数以关闭继承的套接字FD,但我不知道首先如何获取FD。这似乎是一个权限问题。子流程可能以其他用户的身份运行,因此您将无法访问该流程。使用sudo ps xauw | grep[processname]来计算守护进程在哪个

在我的程序中,一个永远服务的守护进程在一个子进程中重新启动

该程序本身是一个web服务,默认情况下使用端口5000

我不知道该守护进程的启动脚本的细节,但它似乎继承了监听端口5000的套接字

因此,如果我重新启动我的程序,我会发现端口已经被守护进程占用


现在我正在考虑微调子流程函数以关闭继承的套接字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应该关闭所有打开的文件描述符本身

无关:如果您希望您的程序能够