Linux命令:通过pstree快速显示进程及进程之间的关系

时间:2024-10-23 21:33:59

目录

一.Pstree简介

二.Pstree下载方式

2.1Debian/Ubuntu上的下载方式

2.2Centos上的下载方式

三.基本用法

3.1基本用法

3.2参数介绍

四.实际用法展示

4.1显示进程的进程ID

4.2显示进程组ID

4.3按照PID对进程排序

4.4强制展开相同的子进程树

4.5显示每个进程的完整命令行


一.Pstree简介

        pstree是一个在类Unix系统中广泛使用的命令行工具,主要用于以树状结构可视化当前系统中进程之间的关系。这个命令显示的是进程间的父子关系,从一个初始进程(通常是init或systemd)开始,逐级展示每个进程及其子进程。pstree提供了多种选项来控制输出的格式和内容,如显示进程ID、用户名、完整命令行参数等。通过pstree,用户可以直观地看到哪个进程是父进程,哪个是子进程,有助于快速理解进程的层次结构和父子关系。在诊断系统问题时,pstree也可以帮助确定哪些进程是问题的根源,从而采取相应的措施进行修复。

二.Pstree下载方式

2.1Debian/Ubuntu上的下载方式

        Ubuntu上下载pstree需要下载psmisc安装包。使用如下命令安装:

sudo apt-get install psmisc

2.2Centos上的下载方式

        Centos上下载pstree也是需要下载psmisc安装包,安装命令如下:

sudo yum install psmisc

三.基本用法

3.1基本用法

        pstree的基本用法如下:

pstree [options] [pid or username]

        其中[options]是pstree的使用参数,会在参数介绍中具体介绍,[pid or username]则是可选的进程ID或者用户名。如果什么参数不加且不选中进程或者用户名,就会输出服务器中所有运行中的进程的树状图,如下图所示。

3.2参数介绍

        下面是pstree的参数的介绍和具体解释:

-a 或 --args:显示每个进程的完整命令行参数。

-c:根据命令名进行排序,并合并相同命令的进程。在某些版本中,此选项可能用于不显示线程信息,具体取决于pstree的版本和发行版。

-h:以人性化的方式显示进程ID和用户,例如,以K/M/G为单位显示内存大小(如果可用)。

-l 或 --long:使用长格式显示进程的完整信息。

-n:不显示进程ID,即禁用括号内的进程计数,不合并相同的子进程。

-p 或 --pid:显示每个进程的进程ID(PID)。

-s:使用可视的方式显示进程的父子关系,或显示每个进程的会话ID(取决于具体实现)。

-t:显示每个进程的启动时间,或添加制表符分隔符以方便后续的文本处理(取决于具体实现)。

-u 或 --user:显示每个进程的用户名和用户组。

--forest:以森林模式显示树状图,即显示多个独立的进程树。

--ascii:以ASCII字符显示树状图。

--plain:以纯文本格式显示树状图,不使用任何特殊字符。

--sort <字段>:按照指定字段对进程进行排序。

--format <格式>:自定义输出格式。

--units <单位>:设置进程ID的单位(不常见)。

--nouserlegend:不显示用户图例。

--nothreads:不显示线程信息(在某些版本中可能用于此目的)。

--nolinks:不显示链接信息。

--notrunc:不截断输出,确保所有信息都完整显示。

--width <宽度>:设置输出宽度。

--color <颜色>:设置输出颜色。

--help:显示帮助信息,列出所有可用的选项和简短的说明。

--version:显示pstree命令的版本信息。

四.实际用法展示

4.1显示进程的进程ID

        使用如下命令可以显示服务器中每个运行中进程的进程ID:

pstree -p

        具体执行结果如下图所示,进程ID都会在进程名后面用括号标示。

4.2显示进程组ID

        使用命令:

pstree -g

        该命令允许pstree输出每个进程的进程组ID,具体执行结果如下图所示。

4.3按照PID对进程排序

        使用该命令:

pstree -n

        允许pstree按照PID对父进程和子进程进行排序,无论是父进程还是子进程都会会按照从小到大进行排序。具体执行结果如下图所示。

4.4强制展开相同的子进程树

        一般情况下pstree是不会展开服务器中相同的子进程树的,但是使用如下命令:

pstree -c

        就可以展开相同的子进程树,下图是执行该命令后展开的相同子进程树。

4.5显示每个进程的完整命令行

        一般情况下pstree只会显示进程树和进程名,如果想要显示每个进程的完整命令行,需要使用如下的命令:

pstree -a

        该命令会在每个进程的后买你输出他们的完成命令行,具体结果如下图所示。


        文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。