如何将已经运行的进程与其父进程分开?

如何将已经运行的进程与其父进程分开?

共有三个过程:

  • 一个“控制程序”,称之为CP。
  • CP启动一个管理进程,称之为MP。
  • MP启动一个工作进程,称之为WP。

CP是我唯一可以修改的程序。与 MP 和 WP 的所有交互都是通过 stdin 和 stdout 以及给定 MP 和 WP 的 PID 的操作系统操作进行的。

WP 运行一段时间,然后发出信号表明它已准备好进入下一阶段。

我希望CP控制WP,将其与MP分离。 CP将直接访问WP的stdin、stdout、stderr。 MP 将终止,而 WP 将在 CP 的控制下继续运行。

我如何在 Linux 上使用 Python 执行此操作?

答案1

/proc您可以从例如打开文件描述符或 WP /proc/123/fd/0。那时,MP 和 CP 都将向 WP 的 stdin/stdout/stderr 打开句柄。你可以杀死 MP 以确保只有 CP 拥有它。

相关内容