跳转至

进程与系统管理

本章目标:

  • 理解什么是进程、为什么要管理进程
  • 掌握查看、分析、控制进程的常用命令
  • 学会查看系统资源(CPU / 内存 / 磁盘)
  • 能在实际工作中进行基本的系统排错

1. 什么是进程(Process)?

1.1 进程的概念

在 Linux 中:

进程 = 正在运行的程序

  • 程序:静态文件(在磁盘上)
  • 进程:程序运行后的状态(在内存中)

1.2 进程的基本特征

  • 每个进程都有一个唯一的 PID(进程 ID)
  • 进程由操作系统调度
  • 进程会占用 CPU / 内存等资源

2. 查看进程(非常重要)

2.1 ps 命令(静态查看)

ps -ef

含义:

  • -e:所有进程
  • -f:完整格式显示

常见字段说明:

字段 含义
UID 进程所属用户
PID 进程 ID
PPID 父进程 ID
CMD 启动命令

2.2 结合 grep 查找进程

ps -ef | grep java

📌 常用于:

  • 查 Java / Node / Python 进程
  • 查服务是否运行

3. 动态查看进程:top

3.1 top 的作用

top

👉 实时显示系统运行状态

可以看到:

  • CPU 使用率
  • 内存使用率
  • 各进程资源占用

3.2 top 常用操作

  • q:退出
  • P:按 CPU 排序
  • M:按内存排序

4. 结束进程(kill)

4.1 kill 的基本用法

kill PID

👉 向进程发送“终止信号”


4.2 常用信号

kill -15 PID   # 正常结束(默认)
kill -9 PID    # 强制结束(慎用)

📌 教学重点:

能用 -15 就不要用 -9


5. 系统资源查看

5.1 CPU 与负载

uptime

查看:

  • 系统运行时间
  • 负载情况(load average)

5.2 内存使用情况

free -h

字段说明:

  • total:总内存
  • used:已使用
  • available:可用

5.3 磁盘使用情况

df -h

👉 查看磁盘分区使用率


5.4 目录占用空间

du -sh *

👉 查哪个目录占空间大


6. 服务管理回顾(systemctl)

systemctl status nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx

📌 服务 ≠ 普通进程
服务由 systemd 管理


7. 常见排错思路(教学重点)

场景 1:服务无法访问

  1. systemctl status 服务名
  2. ps -ef | grep 服务
  3. tail -f 日志

场景 2:服务器变慢

  1. top
  2. 看 CPU / 内存占用
  3. 找异常进程

8. 常见错误与提醒

  • kill -9 滥用
  • 不看 PID 乱杀进程
  • 磁盘满了没发现
  • 只看 ps 不看 top

9. 本章小结

你现在应该能够:

  • 理解进程的概念
  • 查看并分析进程
  • 安全地结束进程
  • 判断系统资源状态

10. 教学练习

练习 1

ps -ef | wc -l

练习 2

  • 启动一个程序
  • 用 ps / top 找到它
  • 使用 kill 结束

练习 3

  • 查看磁盘使用情况
  • 找出占用最大的目录