Linux 如何获取管道另一侧的pid?

Linux 如何获取管道另一侧的pid?,linux,perl,bsd,Linux,Perl,Bsd,我想知道管道另一边的pid。如果是Linux,我可以像下面这些命令一样匹配ls-l/proc/SELF\u PID/fd/0的id [root@host ~]# command1 | command2 & I've known command2's PID = 5912. [root@host ~]# ls -l /proc/5912/fd/0 lr-x------ 1 root root 64 Mar 25 18:00 /proc/5912/fd/0 -> pipe:[54074807

我想知道管道另一边的pid。如果是Linux,我可以像下面这些命令一样匹配
ls-l/proc/SELF\u PID/fd/0的id

[root@host ~]# command1 | command2 & I've known command2's PID = 5912. [root@host ~]# ls -l /proc/5912/fd/0 lr-x------ 1 root root 64 Mar 25 18:00 /proc/5912/fd/0 -> pipe:[540748072] [root@host ~]# ls -l /proc/[0-9]*/fd/1 | grep 'pipe:\[540748072\]' l-wx------ 1 root root 64 Mar 25 18:01 /proc/5911/fd/1 -> pipe:[540748072] [root@host ~]# cat /proc/5911/cmdline vmstat12 [root@host~]#命令1 |命令2& 我知道command2的PID=5912。 [root@host~]#ls-l/proc/5912/fd/0 lr-x------1根根根64三月25日18:00/proc/5912/fd/0->管道:[540748072] [root@host~]#ls-l/proc/[0-9]*/fd/1 | grep'管道:\[540748072\] l-wx------1根根根64 Mar 25 18:01/proc/5911/fd/1->管道:[540748072] [root@host~]#cat/proc/5911/cmdline vmstat12 Linux上有更好的方法吗?或者如何使用BSD和其他操作系统

我想知道是否有一个好的CPAN模块


谢谢。

在Perl中,进程可以使用特殊变量获得自己的PID$$

如果您有一对管道或一个套接字,那么每个进程都可以将自己的PID发送到管道或套接字中,以供另一个进程读取


此外,家长通常通过创建孩子的系统调用来了解孩子的PID。

为什么需要知道谁在监听管道?我想用标准DIN管道另一侧的命令名来命名日志文件。但是如果我这样做会怎么样。但是我想自动设置日志文件名。。或者我想知道解决这个问题的更好方法(获取管道另一侧的pid)以供将来参考:)(可能存在管道从两个以上进程打开的问题。)我只想让用户传递一个文件名(或模式)作为参数,就像普通的
tee
命令一样。