简介
本综合教程将探讨在 Linux 环境中查看和管理后台作业的基本技术。无论你是系统管理员还是开发人员,了解如何监控和控制后台进程对于高效的系统管理和性能优化至关重要。
后台作业基础
什么是后台作业?
Linux 中的后台作业是一个独立于用户当前终端会话运行的进程。与前台进程不同,后台作业在不阻塞当前 shell 的情况下继续执行,允许用户同时执行其他任务。
后台作业的关键特性
| 特性 | 描述 |
|---|---|
| 独立执行 | 无需占用当前终端运行 |
| 持续运行 | 即使终端关闭也会继续运行 |
| 进程管理 | 可以单独进行控制和监控 |
创建后台作业
在 Linux 中有多种启动后台作业的方法:
- 使用
&运算符
long_running_script.sh &
- 将正在运行的进程发送到后台
## 按下 Ctrl+Z 暂停当前进程
## 然后使用 bg 命令在后台继续运行
bg
后台作业流程
graph TD
A[启动进程] --> B{前台/后台?}
B -->|前台| C[阻塞终端]
B -->|后台| D[继续执行]
D --> E[可单独管理]
为何使用后台作业?
- 防止终端阻塞
- 运行长时间任务
- 提高系统资源利用率
- 实现并行任务执行
常见用例
- 数据处理脚本
- 下载管理器
- 备份操作
- 持续监控任务
在 LabEx,我们建议将理解后台作业管理视为一项至关重要的 Linux 系统管理技能。
查看正在运行的进程
基本进程查看命令
ps 命令
ps 命令提供当前进程的快照:
## 列出当前用户的所有进程
ps
## 列出所有进程
ps aux
top 命令
交互式实时进程查看器:
## 启动 top 命令
top
进程状态属性
| 属性 | 描述 |
|---|---|
| PID | 进程标识号 |
| USER | 进程所有者 |
| %CPU | CPU 使用百分比 |
| %MEM | 内存使用百分比 |
| STATE | 当前进程状态 |
高级进程查看技术
过滤进程
## 查找特定进程
ps aux | grep process_name
## 列出后台作业
jobs
进程状态工作流程
graph TD
A[进程启动] --> B{进程状态}
B -->|运行中| C[活跃执行]
B -->|已停止| D[已暂停]
B -->|后台| E[独立运行]
B -->|僵尸| F[已完成但未清除]
专业进程管理工具
pgrep:按名称搜索进程pidof:查找进程 IDhtop:增强的交互式进程查看器
最佳实践
- 定期监控系统进程
- 识别资源密集型任务
- 了解进程关系
在 LabEx,我们强调掌握进程管理以实现高效的系统管理。
作业控制技术
基本作业控制命令
将作业发送到后台
## 在后台运行命令
long_running_script.sh &
## 暂停当前前台进程
Ctrl + Z
作业控制快捷键
| 命令 | 功能 |
|---|---|
bg |
在后台恢复已暂停的作业 |
fg |
将后台作业带到前台 |
Ctrl + Z |
暂停当前进程 |
Ctrl + C |
终止当前进程 |
高级作业管理
列出作业
## 显示当前作业
jobs
## 显示带有进程 ID 的作业
jobs -l
作业状态转换
graph TD
A[启动进程] --> B[前台]
B --> |暂停| C[已停止]
C --> |后台| D[在后台运行]
D --> |前台| B
D --> |终止| E[已完成]
终止后台作业
## 按作业编号终止作业
kill %1
## 按进程 ID 终止作业
kill PID
作业控制信号
| 信号 | 名称 | 描述 |
|---|---|---|
| SIGTSTP | 暂停 | 暂停进程 |
| SIGCONT | 继续 | 恢复已暂停的进程 |
| SIGTERM | 终止 | 优雅地终止进程 |
| SIGKILL | 强制终止 | 强制终止进程 |
最佳实践
- 对持久化的后台作业使用
nohup - 监控系统资源
- 了解进程生命周期
在 LabEx,我们建议掌握作业控制以实现高效的 Linux 系统管理。
总结
通过掌握这些 Linux 后台作业技术,你将在进程管理方面获得宝贵的技能,从而能够有效地查看、控制和理解系统上正在运行的任务。这些技能对于维护系统性能和解决复杂的计算环境问题至关重要。



