LOADING

Linux 进程监控与管理 速查笔记

linux

1. 进程状态速查

R  运行/可运行(正在使用 CPU 或等待 CPU)
S  可中断休眠(等待事件完成,如 I/O)
D  不可中断休眠(通常等待 I/O,不可被信号打断)
T  停止(被作业控制信号暂停)
Z  僵尸(已终止,但父进程未回收其退出状态)

psSTAT 列和 topS 列都显示进程状态。


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 auxtop
查看进程树 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