Linux进程管理
1 基本介绍
- 在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程
则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。 - 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
2 查看进程信息
2.1 查看静态的进程统计信息——ps
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会回收其占用的相关资源
2.2 查看静态的进程统计信息——ps -elf
ps -elf(参数)
参数 | 说明 |
---|---|
-e | 系统内所有进程 |
-l | 长格式显示 |
-f | 完整的格式显示 |
名称 | 描述 |
---|---|
F | 内核分配给进程的系统标记 |
s | 进程的状态 |
UID | 启动这些进程的用户 |
PID | 进程的进程ID,每个进程都有一个唯一的PID |
PPID | 父进程的进程号(如果该进程是由另—个进程启动的) |
C | 进程生命周期中的CPU利用率 |
PRI | 进程的优先级(越大的数字代表越低的优先级) |
NI | 谦让度值用来参与决定优先级 |
ADDR | 进程的内存地址 |
sz | 假如进程被换出,所需交换空间的大致大小 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
STIME | 进程启动时的系统时间 |
TTY | 进程启动时的终端设备 |
TIME | 运行进程需要的累计CPU时间 |
CMD | 进程的启动命令 |
2.3 查看动态的进程排名信息 top
top
交互键:
命令 | 说明 |
---|---|
P键 | 根据CPU使用百分比大小进行排序 |
M键 | 根据驻留内存大小进行排序 |
N键 | 根据启动时间进行排序 |
c键 | 切换显示命令名称和完整命令行 |
h键 | 可以获得top程序的在线帮助信息 |
k键 | 根据提示输入指定进程的PID号并按Enter键终止对应的进程 |
q键 | 退出top程序 |
数字1键 | 显示CPU个数和状态 |
开头五行解释:
- 第一行:任务队列信息
信息 | 说明 |
---|---|
17:08:09 | 系统时间 |
up 3 days,2:55 | 系统已运行时长 |
2 users | 当前登录用户数 |
load average: 0.02, 0.02, 0.05 | 系统负载,即单位时间内系统处理的任务数,后面三个数值分别为2分钟、2分钟、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 | 可用物理空间 |
2.4以树形结构列出进程信息——pstree
pstree命令可以查看当前系统的进程树,包括个各进程对应的PID号、用户名、完整命令等信息
选项 | 意义 |
---|---|
-A | 各进程树之间的连接以ASCII字符来连接 |
-u | 各进程树之间的连接以Unicode字符来连接,在某些终端界面下可能会有错误 |
-p | 同时列出每个进程的PID |
-u | 同时列出每个进程的所属账号名称 |
3 结束进程
3.1 kill命令
使用进程ID (PID) 来终止进程。可以使用ps 命令或top命令获取进程ID.
例如,要结束进程ID为12345的进程,可以运行以下命令:
kill 12345
3.2 killall命令
使用进程的名称来终止进程。这将结束所有与给定名称匹配的进程例如,要结束名为"firefox”的所有进程,
可以运行以下命令:
killall firefox
2.3.3 pkill命令
使用进程的名称或其他属性来终止进程。可以使用正则表达式来匹配进程名称例如,要结束名称以"chrome"开头的所有进程,可以运行以下命令:
pkill '^chrome'
文章来自@火数云:
云服务器-火数云-领先的云服务器、服务器租用托管