15.1 进程的基本介绍
(1)在linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号。
(2)每一个进程都会对应一个父进程,而这个父进程可以复制多个子线程。例如:www服务器
(3)每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
(4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
15.2 显示系统执行的进程
15.2.1 指令 ps -aux
ps -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
15.2.2 进程信息说明
USE:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TTY:终端名称,缩写
STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵尸进程,T-被跟踪或者被停止等等。
STARTED:进程的启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
15.2.3 应用实例
要求:以全格式显示当前所有的进程,查看进程的父进程。
ps -ef:是以全格式显示当前所有的进程
-e:显示所有进程,-f:全格式
ps -ef | grep xxx 是BSD风格
UID:用户ID
PID:进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高。
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
15.3 终止进程kill和killall
15.3.1 介绍
若是某个进程执行到一半需要停止时,或是已经消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
15.3.2 基本语法
kill [选项] 进程号(通过进程号杀死进程)
killall 进程名称(通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢是时很有用)
常用选项:-9(表示强迫进程立即停止)
15.3.3 实践
(1)先登录一个非root用户
(2)在root用户下查看当前的sshd
(3)杀掉3660
15.4 查看进程树pstree
15.4.1 基本语法
pstree [选项],可以更加直观的来看进程信息
15.4.2 常用选项
-p:显示进程的PID
-u:显示进程的所属用户