如何捕获重定向到 /dev/null 的正在运行的进程的标准输出

Sri*_*chi 5 pipe files

我想捕捉到stdout正在运行的进程,其的stdout被重定向到/dev/null。我尝试使用 system call fcntl(),但是当我关闭 fd "1" 时,它被分配给其他文件,因为它是可用的最低 fd 编号。

任何想法如何锁定给定的 fd 并重新分配给其他文件?

pra*_*tri 3

我认为你可以通过使用 proc 文件系统来捕获它:

$ cat /proc/<PID>/fd/1

  • $ cat /proc/&lt;PID&gt;/fd/1 在将 stdout 写入文件时有效,但在将 stdout 发送到 /dev/null 时无效 (3认同)