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输出结果
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的线程,所以是上面的形式喽。