子进程之间的管道

Posted

技术标签:

【中文标题】子进程之间的管道【英文标题】:Pipe between child processes 【发布时间】:2018-06-10 10:44:23 【问题描述】:

是否可以在 2 个或多个子进程之间创建管道? 如果是这样,它必须由父亲创建还是可以由其中一个孩子创建?

【问题讨论】:

【参考方案1】:

是的,可以在子进程之间创建管道。

管道标识符需要两端都知道才能连接到它 - 但是当它们还没有连接时,它们应该如何交换这个标识符?这就是为什么通常管道是由一个共同的祖先创建的,该祖先在创建时将这个公共标识符传达给它的所有子代。

您似乎正在寻找的是 named pipes - 这些可以通过一个众所周知的(按照惯例)名称打开,而无需先接收信息。但是,命名管道与进程的生命周期无关 - 您需要有一些外部实例来在不再需要它们时创建和销毁它们。否则,它们将继续使用系统资源,直到系统重新启动。

【讨论】:

以上是关于子进程之间的管道的主要内容,如果未能解决你的问题,请参考以下文章

swoole父进程和子进程之间通信的例子

swoole父进程和子进程之间通信的例子

如何清理僵尸进程(转载)

僵尸进程

如何知道 vfork 函数中的父进程或子进程

linux下的进程(孤儿进程僵尸进程)