【发布时间】:2012-09-20 06:17:03
【问题描述】:
假设我有以下管道:
$ generator_process | filter_process | storage_process
filter_process 是否可以找出generator_process 和storage_process 的pid?如果是这样,怎么做?如果不是,为什么?
更一般地说,进程如何找到通过管道与之通信的进程的 pid?
我正在寻找一种可移植的 (POSIX) 方式来执行此操作,但如果它需要一些特定于平台的技巧,那么我正在寻找一种 Linux 解决方案。我想 C 中的答案会给出最详细的信息,但如果它涉及 shell,我正在寻找 bash 解决方案。
请假设我可以更改filter_process,但generator_process 和storage_process 是我不可能或不想更改的程序(它们可能是我不想摆弄的标准Unix 工具)。此外,将它们包装在将它们的 pid 写入磁盘的脚本中并不是我想要的解决方案。
【问题讨论】:
-
相关或几乎重复:superuser.com/questions/244413/…