【发布时间】:2023-03-26 08:58:01
【问题描述】:
我正在使用来自subprocess 的Popen 在网络命名空间中生成一个新进程。我需要在父进程和新生成的子进程之间交换数据。
目前,我通过简单地从stdout 解析来做到这一点,这意味着在我的子进程中,我只需打印我需要传输到父进程的所有内容,然后从父进程中解析它。虽然这种方法有效,但它看起来非常笨拙,而且不支持双向数据交换(子 -> 父和父 -> 子)。
我认为创建一个套接字来在两个进程之间进行通信在我的情况下不起作用,因为父进程位于不同的网络命名空间中。
如何在两个独立的网络命名空间之间实现 IPC?
【问题讨论】:
-
你能发布一些示例代码吗?特别是,您如何在新命名空间中生成子进程?在调用
subprocess.Popen之前,您是在Python 中执行此操作,还是通过ip netns exec或nsenter之类的方式执行此操作?
标签: python sockets subprocess ipc linux-namespaces