Linux下查看进程的线程 - pstree

有些时候须要确实进程内部当前运行着多少线程,那么如下几个方法值得一用。java

根据进程号进行查询两种方式:centos

  1. pstree -p 进程号 (centos下默认没有安装pstree,可经过yum -y install psmisc安装)
  2. top -Hp 进程号
$ pstree -p 68919
java(68919)─┬─{java}(68920)
            ├─{java}(68921)
            ├─{java}(68922)
            ├─{java}(68923)
            ├─{java}(68924)
            ├─{java}(68925)
            ├─{java}(68926)
            ├─{java}(68927)
            ├─{java}(68928)
            ├─{java}(68929)
            ├─{java}(68930)
            ├─{java}(68935)
            ├─{java}(68936)
            ├─{java}(68937)
            ├─{java}(68938)
            ├─{java}(68939)
            ├─{java}(68940)
            ├─{java}(68941)
            ├─{java}(68942)
            ├─{java}(68943)
            ├─{java}(68944)
            ├─{java}(68945)
            ├─{java}(68946)
            ├─{java}(68947)
            ├─{java}(68948)
            ├─{java}(68949)
            ├─{java}(68950)
            ├─{java}(68951)
            └─{java}(68952)

 

2.根据进程名字进行查询:bash

# pstree -p `ps -e | grep server | awk '{print $1}'`线程

# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -lcode

这里利用了管道和命令替换,server

关于命令替换,就是说用``括起来的命令会优先执行,而后以其输出做为其余命令的参数,进程

上述就是用 ps -e | grep server | awk '{print $1}' 的输出(进程号),做为 pstree -p 的参数class

管道和命令替换的区别是:awk

管道:管道符号"|"左边命令的输出做为右边命令的输入grep

命令替换:将命令替换符"``"中命令的输出做为其余命令相应位置的参数

相关文章
相关标签/搜索