共有三个过程:
- 一个“控制程序”,称之为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 拥有它。