文章目录

Linux 进程:进程管理与系统监控

发布于 2026-04-15 06:26:44 · 浏览 47 次 · 评论 0 条

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. 进程生命周期与状态转换

进程在其生命周期中会经历不同的状态。理解这些状态有助于判断系统瓶颈。

下面的流程图展示了进程状态之间的典型转换关系:

stateDiagram-v2 [*] --> New: 创建进程 New --> Ready: 资源分配完毕 Ready --> Running: 被调度器选中 Running --> Ready: 时间片用完 Running --> Waiting: 等待I/O或事件 Waiting --> Ready: I/O或事件完成 Running --> Terminated: 正常结束 Running --> Terminated: 收到终止信号 note right of Waiting 此时进程不占用CPU, 但可能占用内存等资源。 end note

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 负载过高。

评论 (0)

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

扫一扫,手机查看

扫描上方二维码,在手机上查看本文