Linux 进程监控与管理 速查笔记
1. 进程状态速查
R 运行/可运行(正在使用 CPU 或等待 CPU)
S 可中断休眠(等待事件完成,如 I/O)
D 不可中断休眠(通常等待 I/O,不可被信号打断)
T 停止(被作业控制信号暂停)
Z 僵尸(已终止,但父进程未回收其退出状态)
ps的STAT列和top的S列都显示进程状态。
2. 查看进程信息
2.1 ps —— 进程快照
| 常用组合 | 用途 |
|---|---|
ps aux |
显示所有用户进程,用户友好格式,含 %CPU、%MEM |
ps -ef |
显示所有进程完整列表,含 PPID(父进程) |
ps --forest |
树状结构展示进程父子关系 |
ps aux | grep <名称> |
按名称过滤进程 |
2.2 top —— 实时动态视图
top
| 按键 | 作用 |
|---|---|
Shift+P |
按 %CPU 排序 |
Shift+M |
按 %MEM 排序 |
Shift+T |
按 TIME+ 排序 |
u + 用户名 |
按用户筛选进程 |
k + PID + 信号 |
终止指定进程(默认信号 15) |
r + PID + nice值 |
调整进程优先级 |
s + 秒数 |
修改刷新间隔 |
q |
退出 top |
关键列: %CPU, %MEM, S(状态), TIME+(累计CPU时间)
3. 作业控制(后台/前台/暂停)
命令 & # 在后台启动命令
jobs # 查看当前 shell 的作业列表
fg %作业号 # 将后台作业调至前台
bg %作业号 # 恢复已停止的作业到后台运行
Ctrl+Z # 暂停前台作业(发送 SIGTSTP)
Ctrl+C # 终止前台作业(发送 SIGINT)
作业号 %n 可从 jobs 输出中获得(如 [1])。
4. 终止进程
4.1 常用信号
| 信号 | 编号 | 效果 |
|---|---|---|
| SIGTERM | 15 | 默认,请求进程优雅退出(可被捕获) |
| SIGKILL | 9 | 强制立即终止(不可捕获) |
| SIGINT | 2 | 中断(相当于 Ctrl+C) |
| SIGHUP | 1 | 通常用于重载配置文件 |
| SIGSTOP | 19 | 暂停进程(不可捕获) |
| SIGCONT | 18 | 恢复暂停进程 |
列出所有信号:kill -l
4.2 kill —— 按 PID 终止
kill <PID> # 发送 SIGTERM(15)
kill -9 <PID> # 强制终止(SIGKILL)
kill -SIGSTOP <PID> # 暂停进程
kill -SIGCONT <PID> # 恢复暂停进程
4.3 killall —— 按进程名称终止
killall <进程名> # 发送 SIGTERM 给所有同名进程
killall -9 <进程名> # 强制终止
4.4 pkill —— 高级匹配终止
pkill <模式> # 按命令名模式匹配终止
pkill -u <用户名> <模式> # 仅匹配指定用户的进程
安全建议: 先用
pgrep -a <模式>预览匹配的进程,确认无误后再执行pkill。
5. 系统负载与CPU信息
5.1 uptime —— 系统运行时间与平均负载
uptime
# 输出示例: 10:23:45 up 2 days, 1 user, load average: 0.52, 0.78, 0.92
# 1分钟 5分钟 15分钟
5.2 lscpu —— CPU 架构与核心数
lscpu
# 关注 "CPU(s):" — 总逻辑核心数
5.3 负载解读
单CPU满载 ≈ 1.00 / 核心
- 将负载均值除以逻辑核心数,得到 CPU 利用率系数。
- 若系数 持续 > 1,系统过载,存在进程等待 CPU。
示例(4核):
1分钟: 0.73 → 73% 利用率
5分钟: 1.12 → 过载 12%
15分钟:1.30 → 过载 30%(持续高位需关注)
6. 实操命令速记
| 目的 | 命令 |
|---|---|
| 查看所有进程状态 | ps aux 或 top |
| 查看进程树 | ps --forest |
| 后台运行任务 | sleep 300 & |
| 查看后台作业 | jobs |
| 将作业调到前台 | fg %1 |
| 暂停前台任务 | Ctrl+Z |
| 恢复后台运行 | bg %1 |
| 按PID终止进程 | kill <PID> |
| 按PID强制关闭 | kill -9 <PID> |
| 按名称终止所有 | killall <进程名> |
| 模式匹配终止 | pkill <模式> |
| 预览 pkill 匹配项 | pgrep -a <模式> |
| 查看系统负载 | uptime |
| 查看CPU核心数 | lscpu |
| 实时进程监控 | top |
| 在 top 中按内存排序 | Shift+M |
| 在 top 中按CPU排序 | Shift+P |
| 在 top 中终止进程 | k → 输入PID → 选择信号15/9 |
| 退出 top | q |