进程与作业控制

掌握 Linux 进程管理和作业控制。学习如何监控系统活动、管理前台和后台作业、终止无响应的进程,以及使用 nice 和 renice 控制进程优先级。

DevOps 工程师LinuxDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

这门入门课程教你从终端观察和控制 Linux 进程。通过 5 个引导式实验,你将从进程快照与实时监控,逐步学习 Shell 作业控制、基于信号的终止方式和 CPU 调度优先级。

最后的事故式挑战要求你启动一个失控进程,识别其资源占用和 PID,先尝试温和终止,并只在必要时升级为强制终止。

你将学到什么

  • 比较 ps 提供的当前终端视图与 ps aux 提供的系统级详细信息
  • 查找目标进程,并在过滤结果中区分它的 PID 与搜索命令自身
  • 使用 top 查看系统活动,并按内存或 CPU 使用率排序进程
  • 在前台或后台运行命令,并区分 Shell 作业 ID 与 PID
  • 使用 Ctrl+Z、jobs、fg 和 Ctrl+C 暂停、列出、恢复和中断终端作业
  • 用 kill 发送 SIGTERM,仅对无响应进程使用 SIGKILL,并通过 pkill 按名称终止
  • 使用 nice 启动进程,并通过 renice 调整运行中进程的优先级
  • 按分阶段响应流程诊断并终止准备好的失控进程

本课程适合谁

本课程适合希望掌握实用进程监控和终端作业控制技能的 Linux 初学者、运维人员,以及有志于从事 DevOps 或 SRE 的学习者。

前置要求: 具备基本的终端导航、命令执行、管道和简单输出重定向能力;无需进程管理经验。

学习环境: LabEx 提供的 Ubuntu 环境终端,包含准备好的后台脚本和进程,可安全练习监控、作业控制、优先级和信号操作。

常见问题

课程如何组织?

前 5 个实验提供引导式练习。第 6 项是失控进程最终挑战,需要在较少提示下综合使用后台执行、top、PID 查找、SIGTERM 和 SIGKILL。

作业 ID 和 PID 有什么区别?

%1 之类的作业 ID 属于当前 Shell 的作业表,供 fg 等命令使用;PID 在整个系统中标识进程,供 ps、renice 和 kill 等工具使用。

进程出现问题时应该直接使用 kill -9 吗?

不应该。课程要求先发送默认的 SIGTERM,让进程有机会正常退出。只有准备好的进程忽略 SIGTERM 时,才使用 kill -9 发送 SIGKILL。

调整 nice 值能保证进程获得固定的 CPU 时间吗?

不能。nice 和 renice 只在进程竞争 CPU 时影响相对调度优先级,不会预留或保证固定的 CPU 份额。

教师

labby
Labby
Labby is the LabEx teacher.