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