Linux 进程:进程管理与系统监控
进程是 Linux 操作系统中正在运行的程序实例。每个进程都有唯一的进程 ID(PID),并占用独立的内存空间。理解如何查看、管理和监控这些进程,是维护系统稳定性的关键技能。
1. 查看静态进程列表
ps 命令用于查看当前时刻的进程快照。它提供静态信息,不会自动刷新。
执行以下命令查看所有用户的详细进程信息:
ps aux
该命令输出的每一行代表一个进程,主要列的含义如下:
| 列名 | 含义 | 说明 |
|---|---|---|
| USER | 进程属主 | 启动该进程的用户 |
| PID | 进程 ID | 系统分配的唯一标识符 |
| %CPU | CPU 使用率 | 进程占用 CPU 的百分比 |
| %MEM | 内存使用率 | 进程占用物理内存的百分比 |
| VSZ | 虚拟内存大小 | 进程使用的虚拟内存总量 |
| RSS | 常驻内存大小 | 进程实际占用的物理内存 |
| TTY | 终端 | 启动进程的终端设备 |
| STAT | 进程状态 | R: 运行, S: 睡眠, D: 不可中断睡眠, Z: 僵尸 |
| START | 启动时间 | 进程启动的日期或时间 |
| TIME | CPU 时间 | 进程累计占用的 CPU 时间 |
| COMMAND | 命令名 | 启动进程的命令行参数 |
筛选特定进程。例如,查找 nginx 相关进程:
ps aux | grep nginx
2. 实时监控进程动态
top 命令提供了一个实时的交互式界面,动态显示系统资源占用情况和进程排名。
输入以下命令启动监控:
top
在 top 界面中,关注前五行输出:
- 第一行显示系统时间、运行时间、登录用户数和系统负载(1分钟、5分钟、15分钟平均值)。
- 第二行显示任务总数(Total)、运行中(Running)、睡眠(Sleeping)、停止(Stopped)和僵尸进程(Zombie)。
- 第三行显示 CPU 使用率情况,包括用户空间(us)、内核空间(sy)、优先级进程(ni)和空闲时间(id)。
操作 top 界面时常用的快捷键:
| 按键 | 功能 |
|---|---|
q |
退出 top 程序 |
P |
按 CPU 使用率排序(默认) |
M |
按内存使用率排序 |
k |
输入 PID 终止指定进程 |
h |
显示帮助信息 |
3. 进程生命周期与状态转换
进程在其生命周期中会经历不同的状态。理解这些状态有助于判断系统瓶颈。
下面的流程图展示了进程状态之间的典型转换关系:
4. 终止与管理进程
当程序无响应或占用过多资源时,需要强制终止进程。
查找目标进程的 PID:
pidof process_name
或者使用 pgrep:
pgrep process_name
发送终止信号。默认情况下,kill 命令发送 SIGTERM (15) 信号,允许程序进行清理操作并退出。
kill <PID>
强制杀死进程。如果进程无响应,发送 SIGKILL (9) 信号,立即终止进程:
kill -9 <PID>
按名称批量杀死进程。例如,停止所有名为 firefox 的进程:
killall firefox
5. 前台与后台任务切换
在终端中运行的命令默认占用当前会话(前台)。通过后台运行,可以释放终端以执行其他操作。
启动后台任务。在命令末尾添加 & 符号:
ping www.google.com &
查看当前会话的后台任务列表:
jobs
将前台正在运行的任务挂起(暂停)并放入后台。按下 Ctrl + Z 组合键。
恢复后台挂起的任务继续运行:
- 让其在后台继续运行:
bg - 将其调回前台运行:
fg
6. 系统资源综合监控
除了关注单个进程,还需要监控整体系统健康状况。
检查内存使用情况:
free -h
关注 available 列,它表示应用程序可用的物理内存量。
查看文件系统磁盘使用情况:
df -h
查看各挂载点的使用率,防止磁盘写满导致系统崩溃。
监控系统整体统计信息(虚拟内存、内核线程、磁盘等):
vmstat 1 5
该命令每秒更新一次,共输出五次。重点观察 r(运行队列长度)和 b(不可中断睡眠进程数)。如果 r 值长期大于 CPU 核心数,说明 CPU 负载过高。

暂无评论,快来抢沙发吧!