进程管理
概述
- 进程是运行中一个程序
- 程序是存在磁盘上的一个可执行文件,把程序加载到内存中执行就产生了一个进程,一个程序可以有多个运行的进程
- 每个进程都有一个ID,称为PID
- 进程也有User/Group,它们和执行者的一样。进程的权限和程序的权限是两个不同的概念,程序权限规定了谁可以执行该程序,进程权限规定了该进程可以读写哪些文件
- 父进程,一个进程通过另一个进程启动,那么后一个进程就是前一个进程的父进程。每个进程都有一个父进程,PPID
任务管理
查看管理
ps
用途:ps指令用来查看系统某一时刻的进程状态
用法一:ps -l
仅查看自己的bash相关的进程
输出结果的每一列说明:
- F:进程标志(process flags)
- 4表示此进程的权限为root
- 1表示此进程只进行fork没有exec
- S:进程状态
- R(Running):正在运行
- S(Sleep):睡眠状态,可以被唤醒
- D:不可被唤醒的睡眠状态,通常是等待I/O
- T:停止状态
- Z(Zombie):僵尸状态,进程已经终止但是无法被移出内存
- PID:进程ID
- PPID:父进程ID
- C:CPU使用率
- PRI:进程优先级相关,Priority缩写
- NI:进程优先级相关,Nice缩写
- ADDR
- -表示正在运行
- SZ:内存使用量
- WCHAN:是否正在运行
- -表示正在运行
- TTY:终端机
- TIME:耗费CPU的时间
- CMD:触发指令
用法二:ps aux
查看所有的进程
输出结果安装PID递增排序
输出结果和ps -l指令有差异
输出结果的每一列说明:
- USER:进程执行者
- PID:进程ID
- %CPU:CPU资源占用比
- %MEM:物理内存占用比
- VSZ:虚拟内存使用量
- RSS:占用的固定内存量
- TTY:终端机
- STAT:进程状态
- R/S/T/Z
- START:启动开始时间
- TIME:CPU使用时间
- COMMAND:进程触发指令
用法三:ps axjf
显示进程树
用法四:ps -lA
以用法一的输出格式化显示所有的进程
top
top指令用于持续监控进程状态
语法:
top | top -d num | top -bnp
选项:
-d num:持续监控时间,num单位为s
-b:按次执行top指令
-n:指定执行top指令的次数
-p:指定监控的PID
交换操作:
?:显示帮助信息
P:以资源使用量排序
M:以内存使用量排序
N:以PID排序
T:以CPU使用时间排序
k:发送一个信号到某个进程
r:重新设定进程的nice值
q:离开监控
输出结果示例:
输出结果说明:
表头:
- 第一行从左到右
- 07:48:15:系统时间
- up 1:26:开机时长
- 1 user:当前登录到系统的用户人数
- load average: 0.00, 0.01, 0.05:系统工作负载,分别为1,5,15分钟的
- 第二行从左到右
- 93 total:进程总数
- 1 running:正在运行的进程数
- 92 sleeping:正在睡眠的进程数
- 0 stopped:停止的进程数
- 0 zombie:僵尸进程数
- 第三行从左到右:反映CPU负载情况
- 第四行从左到右
- 1026900 total:物理内存总量
- 825892 free:未使用物理内存量
- 84436 used:已使用物理内存量
- 116572 buff/cache:缓冲区大小
- 第五行从左到右:反映虚拟内存使用情况
表格:
- PID:进程ID
- USER:进程触发用户
- PR:优先级相关
- NI:优先级相关
- VIRT
- RES
- SHR
- S:进程状态
- %CPU:CPU使用占比
- %MEM:内存使用占比
- TIME+:CPU使用累积时间
- COMMAND:进程触发命令
pstree
查看进程树
语法:
pstree [-A|U] [-up]
选项:
-A:进程树之间使用ASCII字符连接
-U:进程树之间使用Unicode字符连接
-u:显示进程所属的用户
-p:显示进程ID