进程是我们学习Linux中常常接触的概念,他是程序被运行起来的一种表现形态。
了解进程的工作状态,管理进程的工作状态,可以让我们更清楚的知道,系统正在做什么,整体的进度是怎么样的。
想要了解进程的工作状态,我们就需要借助一些常用的工具来查看,想要对进程进行管理,我们也需要工具来实现。下面我们一起来看一看常用的查看进程工具有哪些,这些工具是如何使用的,有什么特点等等。
常用的进程查看工具有以下几种:
pstree ps pidof pkill pgrep top htop
首先要说的第一个就是pstree。
这个命令最常用的方法就是pstree,后面不跟任何参数。这是一个将系统中的所有进程,以进程树形态显示出来的工具,让我们可以拥有一个全局的眼光,去查看系统的进程。
这就是pstree的显示结果,相信通过以上这张图,能让我们对pstree的显示方式有一个比较直观的了解。我们可以很容易的了解到系统一共运行了哪些进程,各个进程分别 包含了哪些线程等等。
接下来介绍一下ps这个命令的使用。
这或许是我们使用频率最高的查看进程的命令了。
需要注意的是,ps这个命令,工作方式有点类似“snapshot”,当我们每次执行一次ps的时候,ps命令就会将系统当前的进程的运行状态做一个静态“snapshot”,然后显示给我们,这样的结果就是,有可能我们每次执行ps的结果,都是不一样的。
按我的理解,ps是将动态的系统的进程的状态的某个时间点的状态,静态的显示给我们。
来看看ps命令常跟的选项,以及各个选项分别是什么意思:
ps支持两种风格的显示方式,一种是BSD风格,一种是UNIX风格。
BSD风格的选项:
ps a 显示所有与终端相关的进程
ps x 显示所有与终端无关的进程
ps u 显示进程所有者的相关信息
ps f 显示进程的父进程
ps o options的意思,即有选择性的显示
其实这些选项都是组合着用的,最常见的组合方式有以下几种:
ps aux
ps auxf
ps axo [pid,euid,ruid,tty,ppid,%cpu,%mem]
ps aux 显示结果:
ps auxf
ps axo 定义要显示的选项的显示结果:
说完BSD风格,再来说说UNIX风格的显示。
ps -e e既是extend的意思,扩展显示
ps -f 显示完整格式
ps -F 显示更完整的格式
ps -H 即hierarchy,以层级结构的方式显示
ps -U 显示以指定的用户运行的程序
其实这些选项也是组合着用的,最常用的莫过于
ps -eFH
关于ps的显示结果,在其第一行的各项参数,我们有必要了解一下,这样我们才能对进程做更深入的理解。
UID: 进程的发起者
PID:通过此前的用户管理章节的学习,我们已经知道,计算机是靠数字来标识这些不同的进程的,进程编号存在的意义也是一样的,人能记住进程名,但计算机可记不住,它只能记数字。
PPID: 这个多出来的P就是parent的意思。
C: 即CPU,运行在哪颗CPU核心上。
%CPU: 分配到的CPU的时间片百分比
%MEM: 实际占用的内存百分比
VSZ:虚拟内存集
RSS:常驻内存集
START:启动时间
TIME:运行占据CPU的累计时长
COMAND: 由哪个命令运行起来
STAT:进程的运行状态
常见的进程的运行状态有:
R:RUNING
S:interruptable sleep 可中断睡眠
D:uninterruptable sleep 不可中断睡眠,(一般都是在等待IO结束发生)
T:STOP
Z:zombie 僵尸进程
+:前台运行的进程
l :多线程进程
N:低优先级进程
< :高优先级进程
s:创建会话者,通常都为bash程序
pidof 命令的使用:
从字面的意思即可以看出,这是一个获取进程的PID的命令。后边跟的参数当然是进程名啦。
我们可以根据一个进程的名字,得知这个进程的PID是多少,并且这个程序并发运行了多少个进程。
如下图可以看出sshd这个服务端程序发起了两个进程,分别为5422和1824。
再来说说pgrep和pkill
之所以放在一起说,是因为这两个命令的使用几乎一样。
语法格式都为:
pgrep [options] pattern
pkill [options] pattern
常见选项:
pgrep | pkill
-u uid 实际运行的用户
-U uid 真实生效的用户
-t terminal 显示指定终端相关的进程
pgrep -l 显示出进程名
pgrep -a 显示完整格式的进程名
接下来要说的就是top命令了。top的显示结果非常强大,信息非常丰富。
并且,之前说的pstree , ps , pidof ,pgrep ,pkill 都是静态显示,而top却是动态显示。
信息有够丰富!
相信刚才对显示的参数的介绍,大家也能触类旁通的理解top显示的参数分别是什么意思了。
我们挑两个重要的来说一说。
load vaerage: 这个选项显示的是过去1分钟,五分钟,十五分钟系统的负载,是一个衡量系统负载是否正常的非常重要的参数。当然啦,uptime命令也能显示类似的信息。
CPU(s)相关的参数的解析;
us:用户空间程序占据的CPU百分比
sy: 内核空间程序占据的CPU百分比
ni: 调整NICE值占据的时间
id:空闲比例
wa:等待IO完成的时间
hi: 硬中断,通常由磁盘这个硬件发起
si: 软中断,通过由软件发起
st:被虚拟化技术偷走的时间
top工具的使用:
默认情况下,这个工具是按占据CPU的百分比排序的。
top -d 调整刷新间隔
top -n 显示多当次后退出
当然啦,top虽然已经够强大,但黑白看着未免单调,于是诞生了一个界面相对比较“华丽”的htop,参数与top大同小异。
可以看看htop的效果图,要显眼许多。
当然啦,无论工具界面如何,我们都无需太过在意,毕竟linux大多数情况下都是比较单调,强调实用的,能将任何一款工具用得熟练,获得我们想要的信息,才是最重要的。
以上是常见的进程的查看工具的使用,希望对大家有些帮助。
原创文章,作者:old_radish,如若转载,请注明出处:http://www.178linux.com/75090