进程的孙子和 Great-grandchildren

Grandchildren and Great-grandchildren of a process

我正在尝试获取我作为参数传递的某个 PID 的 grandchildren 和 grand grandchildren PID。

所以,我正在尝试为初学者找到最简单的解决方案。 现在,我使用 pgrep -P $pid,找到某个 PID 的 children,但现在我想更深入,我想我可能需要使用数据管道并从中过滤出更多东西它。

pgrep -P $pid | grep something

但是我如何更深入地研究这些 children 的后代?有没有办法再次重用 pgrep -P,但这次我得到的结果是什么?

P.S

我之前在这个论坛上研究过这个,但是所有的解决方案对我来说都非常先进,我不太了解它们。 甚至很想知道是否有可能只使用 ps -P 而不使用 pgrep.

的解决方案

您可以使用 xargs 轻松完成:

pgrep -P $pid | xargs -n1 pgrep -P

那会给你孙子。 xargs 将获取第一个命令的输出并将其一个接一个地 (-n1) 传递给第二个命令

仅使用 ps:

ps --ppid $pid -o pid --no-headers | xargs -n1 ps --no-headers --ppid