为什么pstree中显示的某些进程没有在ps -ef中显示?

时间:2014-08-29 11:31:21

标签: linux shell pstree

作为标题,我在Linux的sh shell中运行上述命令,但我通过运行" ps -ef |找不到pid 7459的子进程。 grep dummy"。     有人可以解释为什么这两个命令之间会有这样的差异吗?     它们是活动进程,而不是LWP(线程),对吧?如何显示线程,顺便说一下?

sh-3.2$ pstree -p  7459
dummy(7459)-+-{dummy}(7508)
            |-{dummy}(7528)
            |-{dummy}(7529)
            |-{dummy}(7530)
            |-{dummy}(7551)
            |-{dummy}(7552)
            |-{dummy}(7553)
            `-{dummy}(7554)
sh-3.2$ ps -ef | grep dummy
root      7459  7167  0 Aug28 ?        00:09:13 /usr/bin/dummy
erv      23720 17254  0 13:22 pts/4    00:00:00 grep dummy
sh-3.2$ 

1 个答案:

答案 0 :(得分:6)

正如@nos已经说过,pstree默认显示线程,但ps -ef没有。

ps可以显示主题,你只是没有要求它。试试这个(可能取决于你的版本):

ps -eLf

这一切都在man page

Linux线程只是与另一个进程共享相同地址空间的进程。它就像一把叉子,没有干净利落地脱离。您可以在clone syscall documentation中阅读更多内容。