ps与pstree小结

1.ps

在默认情况下,ps命令只显示当前账户在当前终端机下启动的进程

(1)ps常用的选项

-A —— 显示所有进程
-e —— 与-A一样
-a —— 不用terminal有关的所有进程
-u —— 有效用户相关的进程
-x —— 与-a配合使用,可列出进程详细信息
-l —— 列出进程的更详细信息
-f —— 列出进程间的父子关系
-j —— 工作的格式
-o format —— 自定义ps输出哪些列,以及通过-o pid=XXX来改变ps显示结果中的表头名称

(2)ps常见的用法

ps aux    #查看系统中所有运行的进程
ps -l     #查看当前shell以及其子进程
ps -lA    #查看系统中所有运行的进程
ps axjf   #以进程数的方式显示各个进程
ps -ef    #显示系统中所有运行的进程
ps -eo "%p %y %x %c"          #输出pid、关联的tty、cpu执行时间、命令。具体参见man ps说明。
ps -eo pid,tid,class --sort pid  #自定义ps输出列并以pid排序
ps -eo user,pid,ppid,comm,cmd | grep httpd     #自定义输出ppid等
ps -eo pid,comm,lstart           #查看进程的准确启动时间
ps axo stat,euid,ruid,tty --sort pid           #自定义ps输出列并以pid排序
ps -u root,omd    #查看指定用户列表中用户启动的进程
ps -au root,omd   #查看指定用户列表中用户启动的进程

(3)ps输出结果

ps与pstree小结_第1张图片

VSZ:进程申请的内存的大小,并不是实际使用的内存大小,单位是KB。

RSS:进程实际使用的内存大小,但不包括被转移到虚拟内存上大小,单位是KB。

START:进程启动的时间,如果进程启动的时间不在当前的年份,那么执行其执行的年份,如2014;若进程启动的时间不在当天,那么显示的格式是mmmdd,即‘月份天’;若进程是在当天启动的,那么显示的格式是HH:MM,即‘小时:分钟’

TIME:进程累积实际使用CPU时间片之和,不是进程启动到现在的绝对时间哦。格式为[dd-]hh:mm:ss,即为'月:小时:分钟:秒'


2.pstree

(1)作用:查看系统的所有进程及其关系

(2)常用的选项

-A —— 各个进程之间的连接符号以ASCII符号来连接
-U —— 各个进程之间的连接符号以Unicode符号连接(是默认的好像,而且测试时出现进程连接符号乱码了,待分析)
-p —— 列出各个进程的PID
-u —— 列出各个进程的所属账户owner
-h num 或 -H num —— 高亮显示进程号为num的进程

(3)关于pstree的打印出来的进程树的一点闲杂

(I)进程树中会将相同分支合并,放到中括号[]中,并以数字作为前缀;


合并之后的形式是:

注意,getty之所以没有花括号,是因为它不是线程,而是进程喽。

(II)进程树中会将一个进程的子线程,也打印出来,并放到花括号{}中


合并之后的形式是:


其中,中括号是(1)中的合并相同的分支,花括号是因为automount是线程。

进程gdm-rh-security只有一个名称为gdm-rh-security的线程,所以是上面的形式喽。

你可能感兴趣的:(ShellScripts)