要对进程进行检测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程运行状态。linux 系统中
我们可以使用 ps 命令查看进程。
ps 命令介绍
ps(process status) 命令是 linux 下最常用的进程查看工具,使用该命令可以确定哪些进程正在运行和运行的状态、
进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。
注意:ps 命令工具显示的是进程的瞬间状态,并不是动态连续显示,如果想对进程状态进行实时监控应该用 top 命
令。
ps 命令的基本使用
1. 执行任何不加选项的 ps 命令
[root@vm_81_181_centos ~]# ps pid tty time cmd 22402 pts/1 00:00:00 bash 22447 pts/1 00:00:00 ps
直接执行不加任何选项的 ps 命令时,则只显示当前用户会话中打开的进程。第一行为列表标题,包含基本四个字段,
各个字段的含义描述如下:
pid:表示该进程的唯一 id 号
tty 或 tt:启动进程的终端名。表示该进程在哪个终端上运行。不是从终端启动的进程或与终端机无关的进程则显示
为 ?
time:该进程使用 cpu 的累计时间
cmd:该进程所运行的命令
2.使用标准语法 (unix 风格) 查看各个进程
选项:
-e:显示系统内所有进程的信息。与 -a 选项功能相同
-f:使用完整 (full) 的格式显示进程信息,如果只有 ps -e 则输出进程信息的格式和只使用 ps 一样
各字段含义如下:
uid:启动该进程的用户的 id 号
ppid:代表该进程的父进程的 id 号
c:进程的 cpu 处理器利用率
stime/start:表示进程的启动时间
注意:也可以使用 ps -ef 命令查看系统内的所有进程信息,输出的进程信息比使用 ps -ef 多三个信息分别是:sz,rss
,psr 关于这三个感兴趣的可以自己上网查阅一下
3.使用 bsd 语法查看系统上的进程信息
3.1 显示当前终端下的所有信息
a:显示当前终端下的所有进程信息,包含其他用户的进程信息。和 x 选项结合使用可以显示系统中所有进程的信息
x:显示当前用户在所有终端下的进程信息
字段描述:
stat:表示进程的当前状态
r:running,运行或可运行状态(在运行队列中)。正在运行或准备运行的进程。
s:interruptable sleeping,可中断睡眠(等待事件完成)。正在睡眠的进程。
d:uninterruptable sleeping,不可中断的睡眠进程(通常为io)。
t:stopped,停止或被追踪的进程。由作业控制信号停止。
z:zombie,失败终止的(“僵死”)进程。
s:session leader,会话层状态。代表的父进程
n:低优先级进程
<:高优先级进程
:前台进程。在前台进程组中
l:多线程进程。
3.2 以面向用户的格式显示当前终端下的所有信息
u:使用以用户为主的格式输出进程信息
字段描述:
user:启动该进程的用户帐号名称
%cpu:表示进程的 cpu 占用率
%mem:表示进程的内存占用率
vsz:表示进程虚拟内存的大小,以 kb 为单位
4. 排序
当使用 aux 选项查看进程的 cpu 或内存使用量来筛选,从而方便找出占用资源最多的进程,但是默认情况下不排序,
在这里我们可以使用 --sort 命令选项排序,例如:
ps aux --sort=%mem 或 ps aux --sort %mem 这两条命令是一样的,也可以使用 ps aux --sort= %mem 或 ps aux --sort %mem,
%mem 前面默认有一个加号 ,加不加上结果都是一样的,都表示升序排序,如果想要降序排序并且看到字段标题可以在 %mem 前面
加上减号 -,如下所示:
5.根据特定条件过滤
在这里介绍一下和 grep 命令结合使用
仅仅显示一个名为 sshd 的进程信息
以上就是 linux 使用 ps 查看进程的部分比较常用的操作命令