【问题标题】:Close port on killing python the process with children关闭与孩子一起杀死python进程的端口
【发布时间】:2015-03-11 17:34:16
【问题描述】:

当我的 python 程序通常被 -9 杀死时,它也会关闭它正在侦听的端口。

但是,当它有一些使用 Popen 创建的子进程正在运行时(我真的不需要在杀死父进程时杀死它),而杀死 -9 父进程似乎使端口处于使用状态。

即使有孩子,如何强制关闭端口?

【问题讨论】:

  • 你的程序无法关闭SIGKILL信号(-9)的端口,可能是内核完成的,然后进程已经死了。

标签: python port popen kill


【解决方案1】:

好的,我知道在执行 Popen 时似乎 close_fds=True 可以解决问题。

【讨论】:

  • 另一种方法是使用不可继承的文件描述符创建连接。它是Python 3.4+ 的默认值,尽管close_fds=True 是自Unix 上的Python 3.2 以来的默认值。它之所以有效,是因为close_fds=True 避免了将文件描述符泄漏给子进程。
  • 是的,如果您明确传递 close_fds=True,它应该可以工作。在 Unix 上的 Python 3.2+ 上,您不需要。
猜你喜欢
  • 1970-01-01
  • 2021-07-24
  • 2012-02-25
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 2021-11-21
相关资源
最近更新 更多