进程管理
进程管理
【前言】
程序:
(比如公司)
l 保存在硬盘、光盘等介质可执行代码
l 静态保存的代码(二进制)
进程:
(比如部门)
l 在CPU及内存中运行的过程
l 动态的代码(有生命周期和状态)
l 有父、子进程
线程(比如员工)与进程:
l 资源分配与调度
l 进程是资源调配的基本单位
l 线程是程序执行的最小单位
一、查看进程信息
1.1 查看静态的进程统计信息——ps
1 | ps -aux(参数)
|
参数 |
说明 |
|
-u |
列出进程的用户 |
|
-a |
显示终端上的所有进程 |
|
-x |
所有的终端进程 |
|
名称 |
描述 |
|
– |
– |
|
USER |
启动该进程的用户账号名称 |
|
PID |
进程的ID,当前系统中是唯一的 |
|
%CPU |
占用的CPU百分比 |
|
%MEM |
占用内存的百分比 |
|
VSZ |
该进程使用的虚拟内存量(KB) |
|
RSS |
该进程占用的物理内存量(KB) |
|
TTY |
启动进程的终端名。不是从终端启动的进程则显示为? |
|
STAT |
该进程的状态。(见表格下详解) |
|
START |
该进程被触发启动时间 |
|
TIME |
该进程实际使用CPU运行的时间 |
|
COMMAND |
进程的启动命令 |
|
STAT: D:不可被唤醒的休眠状态; R:正在运行状态; S:处于休眠状态,可被唤醒; T:停止状态,可能是在后台暂停或进程处于跟踪调试状态; Z:僵厂进程,进程己经中止,但是部分程序还在内存当中 ,但其父进程无法正常中止它 |
僵厂进程:
僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源
1.2 查看静态的进程统计信息——ps -elf
1 | ps -elf(参数)
|
|
|
参数 说明 |
|
-e 系统内所有进程 |
|
-l 长格式显示 |
|
-f 完整的格式显示 |
|
名称 |
描述 |
|
– |
– |
|
F |
内核分配给进程的系统标记 |
|
s |
进程的状态 |
|
UID |
启动这些进程的用户 |
|
PID |
进程的进程ID,每个进程都有一个唯一的PID |
|
PPID |
父进程的进程号(如果该进程是由另—个进程启动的) |
|
C |
进程生命周期中的CPU利用率 |
|
PRI |
进程的优先级(越大的数字代表越低的优先级) |
|
NI |
谦让度值用来参与决定优先级 |
|
ADDR |
进程的内存地址 |
|
sz |
假如进程被换出,所需交换空间的大致大小 |
|
WCHAN |
若该进程在睡眠,则显示睡眠中的系统函数名 |
|
STIME |
进程启动时的系统时间 |
|
TTY |
进程启动时的终端设备 |
|
TIME |
运行进程需要的累计CPU时间 |
|
CMD |
进程的启动命令 |
1.3 查看动态的进程排名信息——top
1 | [root@Kiro]# top
top命令
|
命令 |
说明 |
|
P键 |
根据CPU使用百分比大小进行排序 |
|
M键 |
根据驻留内存大小进行排序 |
|
N键 |
根据启动时间进行排序 |
|
c键 |
切换显示命令名称和完整命令行 |
|
h键 |
可以获得top程序的在线帮助信息 |
|
k键 |
根据提示输入指定进程的PID号并按Enter键终止对应的进程 |
|
q键 |
退出top程序 |
|
数字1键 |
显示CPU个数和状态 |
top各行解释
第一行:任务队列信息
|
信息 |
说明 |
|
12:45:44 |
系统时间 |
|
up 3:55 |
系统已运行时长 |
|
3 users |
当前登录用户数 |
|
load average: 0.08, 0.04, 0.05 |
系统负载,即单位时间内系统处理的任务数,后面三个数值分别为8分钟、4分钟、5分钟前到现在的平均值 |
第二行:进程信息
|
信息 |
说明 |
|
Tasks |
总进程数 |
|
running |
正在运行的进程数 |
|
sleeping |
休眠的进程数 |
|
stopped |
中止的进程数 |
|
zombie |
僵死的进程数 |
第三行:CPU的信息
|
信息 |
说明 |
|
us |
用户占用 |
|
sy |
内核占用 |
|
ni |
优先级调度占用 |
|
id |
空闲CPU,要了解空闲的 CPU 的百分比,主要看 %id 部分 |
|
wa |
I/O 等待占用 |
|
hi |
硬件中断占用 |
|
si |
软件中断占用 |
|
st |
虚拟化占用 |
第四行:内存的信息
|
信息 |
说明 |
|
total |
总内存空间 |
|
free |
空闲内存 |
|
used |
已用内存 |
|
buff/cache |
物理内存和交换内存的缓冲区总和 |
第五行:交换空间的信息
|
信息 |
说明 |
|
total |
总交换空间 |
|
free |
空闲交换空间 |
|
used |
已用交换空间 |
|
avail Mem |
可用物理空间 |
1.4 根据特定条件查看进程信息——pgrep
|
[root@Kiro opt]# pgrep -l -U kiro 18505 gnome-keyring-d 18510 gnome-session-b 18519 dbus-launch 18520 dbus-daemon |
|
参数 |
说明 |
|
-l |
显示进程名 |
|
-U |
指定特定用户 |
|
-t |
指定终端 |
1.4 以树形结构列出进程信息——pstree
pstree命令可以查看当前系统的进程树,包括个各进程对应的PID号、用户名、完整命令等信息
|
选项 |
意义 |
|
-A |
各进程树之间的连接以ASCII字符来连接 |
|
-u |
各进程树之间的连接以Unicode字符来连接,在某些终端界面下可能会有错误 |
|
-p |
同时列出每个进程的PID |
|
-u |
同时列出每个进程的所属账号名称 |
不用加-u 因为已经指定用户信息了
二、进程的启动与控制
2.1 启动进程
2.1.1 手工启动
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
输出信息中包括后台任务序号、PID号
进程启动后会直接放入后台,而不占用前台的命令操作界面,方便用户进行其他操作:
2.1.2 进程的前后台调度(Ctrl + Z 组合键、 jobs命令和fg命令)
l Ctrl + Z 组合键: 将当前进程挂起,即调入后台并停止执行
l jobs命令: 查看处于后台的任务列表
[-l]选项显示PID号
fg命令: 将后台进程恢复到前台运行,可指定任务序列号
|
[root@localhost ~]# jobs [1]- Stopped cp /dev/cdrom mycd.iso [2]+ Stopped top [root@localhost ~]# fg 1 |
2.1.3 终止进程的运行
l Ctrl+C组合键
中断正在执行的命令
kill、killall命令
kill用于终止指定PID号的进程 (杀死组进程时只能啥本身)
killall用于终止指定名称相关的所有进程 (杀死组进程时能杀死全部)
-9选项用于强制终止
pkill命令
|
-U |
根据进程所属的用户名终止相应进程 |
|
-t |
根据进程所在的终端终止相应进程 |
根据特定条件终止相应的进程 常用命令选项

浙公网安备 33010602011771号