10

作为标题,我在 Linux 的 sh shell 中运行了上述命令,但我无法通过运行“ps -ef | grep dummy”找到 pid 7459 的子进程。有人可以解释为什么这两个命令之间会有这样的差异吗?它们是活动进程,而不是 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$ 
4

1 回答 1

10

正如@nos 已经说过的那样,pstree默认情况下显示线程,但ps -ef不显示。

ps可以显示线程,你只是没有要求它。试试这个(这可能取决于你有什么版本):

ps -eLf

这都在手册页中。

Linux 线程只是与另一个进程共享相同地址空间的进程。就像没有干净利落的叉子。clone您可以在系统调用文档中阅读更多内容。

于 2014-08-29T12:14:06.203 回答