通过名称和 ID 终止进程

LinuxBeginner
立即练习

介绍

在本次挑战中,你将学习如何使用不同的命令在 Linux 中终止进程。进程管理是任何 Linux 管理员或用户的基本功,它能让你有效地控制运行中的应用程序和服务。

掌握技能

  • kill - 向进程发送信号
  • killall - 通过名称杀死所有进程
  • pkill - 通过名称杀死所有进程
这是一个「挑战」,它与「引导实验」的不同之处在于,你需要尝试独立完成挑战任务,而不是按照实验步骤一步步学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据表明,这是一个 初学者 级别的挑战,通过率为 83%。它在学习者中获得了 89% 的好评率。

向进程发送信号

在 Linux 中,每个运行的程序或服务都由一个带有唯一进程 ID(PID)的进程表示。kill 命令允许你向进程发送信号,其中最常用的信号就是用来终止进程的。

我们已经运行了一个后台脚本进程,它会持续向日志文件写入内容。现在你需要使用 kill 发送信号来终止它。

任务要求

  • 找到后台脚本(/tmp/background-process.sh)的进程 ID
  • 发送信号杀死该进程
  • 仅使用 kill 来终止进程

提示

  • 使用 ps aux | grep [process-name] 来查找进程的 PID
  • -9 信号(SIGKILL)会强制进程立即终止
  • 请记住,某些操作需要根用户权限(sudo)
✨ 查看解决方案并练习

杀死所有进程

虽然 kill 在通过 PID 终止单个进程时非常强大,但当你需要终止多个同名进程时,Linux 提供了更方便的命令。

killallpkill 命令允许你通过名称而不是逐个查找 PID 来终止进程。这在处理同一个程序的多个实例时特别有用。

在这一步中,我们将练习使用这些命令来终止我们之前启动的所有 nginx Web 服务器实例。

任务要求

  • 杀死所有 nginx 进程
  • 使用 killallpkill 杀死所有 nginx 进程

提示

  • killall 要求进程名称精确匹配
  • pkill 允许更灵活的模式匹配
  • 对于系统进程,这两个命令可能都需要根用户权限(sudo)
✨ 查看解决方案并练习

总结

恭喜你!你已成功完成了本次挑战。

在本次挑战中,你学习了核心的 Linux 进程管理技能:

  1. 如何使用 ps 命令识别进程
  2. 如何使用 kill 命令通过 PID 终止特定进程
  3. 如何使用 killallpkill 通过名称终止多个进程

这些命令是 Linux 管理员工具箱中的基础工具,能够让你有效地管理和控制运行中的进程。无论你是需要停止一个运行异常的应用程序还是重启一项服务,这些命令都能让你对系统进程进行精确控制。

继续学习,祝你玩得愉快!