作为标题,我在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$
答案 0 :(得分:6)
正如@nos已经说过,pstree
默认显示线程,但ps -ef
没有。
ps
可以显示主题,你只是没有要求它。试试这个(可能取决于你的版本):
ps -eLf
这一切都在man page。
Linux线程只是与另一个进程共享相同地址空间的进程。它就像一把叉子,没有干净利落地脱离。您可以在clone
syscall documentation中阅读更多内容。