欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux编程 6 (查看进程 ps 及输出风格)

程序员文章站 2022-11-01 13:12:05
一.查看进程命令ps 1.1 默认ps 命令 在默认情况下,ps命令只会显示运行在当前控制台下,属于当前用户的进程,在上图中,我们只运行了bash shell以及ps命令本身。 上图中显示了程序的进程ID(1538,1583),它们运行在TTY终端, 以及进程已有的CPU(TIME)时间。 1.2  ......

一.查看进程命令ps

  1.1 默认ps 命令
    Linux编程 6 (查看进程 ps 及输出风格)

    在默认情况下,ps命令只会显示运行在当前控制台下,属于当前用户的进程,在上图中,我们只运行了bash shell以及ps命令本身。 上图中显示了程序的进程id(1538,1583),它们运行在tty终端, 以及进程已有的cpu(time)时间。

  1.2 ps 风格以及参数
    在linux系统中使用的gnu ps命令支持3种不同类型的命令行参数。包括unix风格的参数,bsd风格的参数,gnu风格的长参数。

二.  unix风格参数

  在ps中每种风格的参数都很多,下面例举一些常用的unix风格的ps命令参数。下面表格还有很多参数没有列出来。

参数

描述

-a

显示所有进程

-n

显示与指定参数不符的所有进程

-a

显示除控制进程和无终端进程外的所有进程

-d

显示除控制进程外的所有进程

-e

显示所有进程

-c  cmdlist

显示包含在cmdlist列表中的进程

-f

显示完整格式的输出

-l

显示长列表

  2.1 ps  –ef 参数组合命令   

    多数linux系统管理员都有自己的一组参数,来提取有用的进程信息。例如可用-ef 参数组合,如下图所示:
    Linux编程 6 (查看进程 ps 及输出风格)

    在上面的列表中,输出的信息包括:uid列是指启动这些进程的用户。pid列是指进程id。 ppid列是指:父进程id(该进程是由另一个进程启动的)。 c列是指进程生命周期中的cup利用率。 stime列是指进程启动时的系统时间。tty列是指进程启动时的终端设备。time列是指运行进程需要的累计cpu时间。cmd列是指启动的程序名称。  

  2.2 ps –l  长列表

    如果想要获取更多的信息,可以采用-l参数,它会产生一个长格式的输出,如下图所示:
    Linux编程 6 (查看进程 ps 及输出风格)

    上面的列表中,输出的信息包括:f列是指内核分配给进程的系统标记。s 是指进程状态(o是正在运行。s是休眠。r是可运行,正等待运行。z是僵化,进程已结束但父进程已不存在,t是停止) 。 prt列是指进程的优先级(越大数字表越低的优先级)。 nt列是指谦让度值,用来参与决定优先级。 addr列是指进程的内存地址。 sz列是指假如进程被换出,所需的交换空间在大致大小。 wchan列是指进程休眠的内核函数的地址。

  2.3 ps –ef|grep xx  查找进程

    命令grep是查找, 中间 | 是管道命令,代表ps与grep同时执行。grep是一种强大的文本搜索工具,它能使用正则搜索文件,并把匹配的行打印出来。下面是匹配与nginx字符有关的进程, 用grep过滤后进程信息列名也屏蔽了。

    Linux编程 6 (查看进程 ps 及输出风格)

    下面命令加了l 长列表显示。
    Linux编程 6 (查看进程 ps 及输出风格)

    上图第二列值是s,代表当前nginx进程是休眠状态,第三列uid是属于hsr用户。

三. bsd  风格参数

    bsd风格参数的ps命令参数常用如下(其它很多未列出)

参数

描述

r

仅显示运行中的进程

t

显示与当前终端关联的所有进程

a

显示与任意终端关联的所有进程

g

显示所有的进程,包括控制进程

l

采用长模式

    使用bsd参数时,ps命令会自动改变输出以模仿unix格式。例如:使用参数l输出:
    Linux编程 6 (查看进程 ps 及输出风格)

    上图中列输出与unix风格输出大部份是一样的。只有小部份不同包括 vsz是指进程在内存中的大小,以kb单位。 rss是指进程在未换出时占用的物理内存。 stat:代表当前进程状态的双字符状态码。

在stat双字符状态码中,第一个字符与unix的s列值一样。后一个字符代表如下:

  <: 该进程运行在高优先级上。

  n:该进程运行在低优先级上。

  l:该进程有页面锁定在内存中。

  s:  该进程是控制进程。

  l:  该进程是多线程的。

  +: 该进程运行在前台。

可以看出bash命令处于休眠状态。是一个控制进程。 ps是运行在系统的前台。

 

四.  gnu风格长参数

    gnu长参数风格的ps命令参数常用如下(其它很多未列出)

--deselect

显示所有进程,命令行中列出的进程

--forest

层级结构显示出进程与父进程之间的关系

     例如使用组合参数输出。如下图所示:
    Linux编程 6 (查看进程 ps 及输出风格)
    例如与其unix风格组合参数输出。如下图所示:
    Linux编程 6 (查看进程 ps 及输出风格)