前言
当程序在系统上运行时,我们称之为进程(process)。想监测这些进程,需要熟悉ps命令的用法
一、探查进程 ps
用法:ps +参数
-A:显示所有进程
-e:显示所有进程
-U user :显示该user用户的进程
-f :显示进程的完整形式
![](https://i-blog.csdnimg.cn/blog_migrate/33564455ef5dccc903fd9419e0840248.png)
UID:启动进程的用户
PID:进程id
PPID:父进程的进程号
C:进程CPU的利用率
STIME:进程启动时的系统时间
TTY:命令运行的位置
TIME:运行进程所需要累计的CPU时间
CMD:该进程运行的程序名称
二、实时监测 top
ps命令虽然在收集运行在系统上的进程信息时非常有用,但也有不足之处:它只能显示某个特定时间点的信息。如果想观察那些频繁换进换出的内存的进程趋势,
用ps命令就不方便了,这个时候就要用到top命令了
![](https://i-blog.csdnimg.cn/blog_migrate/4d0b56adb7c979bff7b1df79cd93e60d.png)
第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载。平均负载有3个值:最近1分钟的、最近5分钟的和最近15分钟的平均负载。
值越大说明系统
的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但如果近15分钟内的平均负载都很高,那就说明系统可能有问题了
第二行显示了进程概要信息——top命令的输出中将进程叫作任务(task):有多少进程处在运行、休眠、停止、僵化状态
第三行显示了CPU的概要信息。top根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出。
第四行说的是系统的物理内存:总共有多少内存,
当前用了多少,还有多少空闲。
第五行说的是同样的信息,不过是针对系统交换空间(如果分配了的话)的状态而言的。
第六行显示了当前运行中的进程的详细列表,有些列跟ps命令的输出类似。
PID:进程的id。
USER:进程所属的用户名字。
PR:进程的优先级。
NI:进程的谦让度值,跟衰减值类似
VIRT:进程占用的虚拟内存总量。
RES:进程占用的物理内存总量。
SHR:进程和其他进程共享的内存总量。
S:进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)。
%CPU:进程使用的CPU时间比例。
%MEM:进程使用的内存占可用内存的比例
TIME+:自进程启动到目前为止的CPU时间总量。
COMMAND:进程所对应的命令行名称,也就是启动的程序名。
三、杀死进程
1、kill
1)kill + PID 杀死进程,此处只能用进程id,不能使用进程名,而且必须是进程所属用户才能结束进程
![](https://i-blog.csdnimg.cn/blog_migrate/4eb1eabac9a25338feaa3c50adadc770.png)
2)kill -9 +PID 强制杀死进程,有的用kill +PID无反应的可以用此命令强制杀死进程
2、killall
killall +程序名 杀死进程,支持使用程序名,但不能用PID,我看文档说还支持通配符,但我用通配符后并没有卵用,不知道咋回事
当然kill和killall还有其他参数,但个人感觉用处不大就不理会了