跳转到内容

Linux进程管理:ps和kill命令详解

课程介绍

最后我们学习进程管理。程序运行时会创建进程,每个进程有独立的PID。ps命令用于查看进程信息,常用ps -ef查看所有进程;kill命令用于终止进程,kill PID发送终止信号,kill -9 PID强制终止进程。可以用ps -ef | grep过滤特定进程。进程管理是系统维护的重要技能。

1. 进程的概念

什么是进程?

进程是程序在操作系统中的一次运行实例。当程序被执行时,操作系统会:

  • 为其分配系统资源(内存、CPU时间等)
  • 创建一个独立的进程控制块(PCB)
  • 分配唯一的进程ID(PID)用于标识

进程的特点

  • 每个进程都有独立的进程ID(PID)
  • 进程可以被用户或其他程序启动
  • 进程之间有父子关系(PPID)
  • 进程占用系统资源并消耗CPU时间

2. 查看进程:ps命令详解

ps命令基本语法

bash
ps [选项]

常用选项组合:ps -ef

  • -e:显示系统中所有进程
  • -f:以完整格式显示进程信息
bash
ps -ef

ps -ef输出解读

列名含义示例
UID启动进程的用户root
PID进程ID(唯一标识)12345
PPID父进程ID1000
CCPU占用率(百分比)0
STIME进程启动时间14:30
TTY启动进程的终端pts/0
TIME累计占用CPU时间00:00:03
CMD进程的启动命令/usr/bin/nginx

过滤进程信息

使用管道符|和grep命令过滤特定进程:

bash
ps -ef | grep 进程名

例如,查找tail进程:

bash
ps -ef | grep tail

注意事项: 过滤结果通常会显示两个条目,一个是目标进程,另一个是grep命令本身


3. 终止进程:kill命令详解

kill命令基本语法

bash
kill [选项] 进程ID

常用选项

  • -9:强制终止进程(系统级别强制关闭)

进程终止的两种方式

1. 发送终止信号(默认方式)

bash
kill 进程ID
  • 向进程发送SIGTERM信号
  • 进程有机会进行清理工作后自行终止
  • 进程可能忽略此信号(不文明进程)

2. 强制终止进程

bash
kill -9 进程ID
  • 向进程发送SIGKILL信号
  • 系统直接终止进程,不给清理机会
  • 确保进程被终止,但可能导致数据丢失

4. 实践操作:进程管理综合应用

步骤1:启动一个测试进程

bash
tail

步骤2:查看所有进程

bash
ps -ef

步骤3:过滤并找到tail进程

bash
ps -ef | grep tail

步骤4:使用默认方式终止进程

bash
kill 进程ID

步骤5:再次启动tail进程并使用强制方式终止

bash
tail
# 另开一个终端
ps -ef | grep tail
kill -9 进程ID

5. 命令速查

命令功能示例
ps -ef查看所有进程的完整信息ps -ef
ps -ef grep 进程名过滤查找特定进程ps -ef grep nginx
kill 进程ID发送终止信号给进程kill 12345
kill -9 进程ID强制终止进程kill -9 12345

6. 常见问题与解决方案

问题解决方案
找不到目标进程检查进程名是否正确,使用更精确的过滤条件
kill命令执行后进程仍存在使用kill -9强制终止,或检查是否有子进程未终止
没有权限终止进程使用root用户执行kill命令,或检查进程所属用户
误杀关键进程谨慎确认进程ID,避免终止系统关键进程(如init、systemd等)

课程总结

这节课我们学了进程管理。

ps命令查看进程: ps -ef - 查看所有进程的详细信息 ps -ef | grep 进程名 - 过滤查找特定进程

kill命令终止进程: kill 进程号 - 发送终止信号(进程可以清理后退出) kill -9 进程号 - 强制终止(直接杀掉,可能丢数据)

先用ps找到进程的PID,再用kill终止它。

下节课我们将学习Linux系统的资源监控命令,敬请期待!

课后练习

练习1(基础)

请在Linux终端中执行以下操作:

  • 使用ps命令查看系统中所有进程
  • 使用grep过滤出当前用户启动的进程
  • 找出当前终端的进程PID

💡 提示:使用whoami查看当前用户名,使用grep配合过滤用户名。

练习2(进阶)

请尝试:

  • 启动一个sleep 1000命令
  • 使用ps命令找到该进程的PID
  • 使用kill命令的两种方式(默认方式和-9方式)分别终止进程
  • 观察两种终止方式的区别

💡 提示:默认kill命令给进程清理的机会,kill -9直接强制终止。

练习3(拓展)

请尝试:

  • 使用top命令查找占用CPU最多的进程
  • 记录进程的PID和命令名
  • 使用ps -ef命令查看该进程的详细信息
  • 使用kill命令终止该进程

💡 提示:top命令按q退出,按C按CPU排序,找到PID后使用kill命令终止。


评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径