Linux——进程管理

进程管理


前言

在Linux系统的日常运维与开发工作中,系统中所运行的每一个程序都表现为一个或多个进程。进程是系统进行资源分配和调度的基本单位,深入理解并有效管理进程,是掌握Linux系统核心能力的关键一环。

以下是 九、进程管理 的重新整理与详细说明,内容按照逻辑结构重新组织,命令部分配有详细解释与应用场景说明,便于理解与记忆。


一、程序与进程的基本概念

1. 程序与进程的关系

  • 程序:存储在硬盘上的静态可执行文件,如 /usr/bin/firefox
  • 进程:程序在内存中运行的实例,是系统进行资源分配和调度的基本单位。

比喻

  • 程序就像一本书
  • 进程,就像你打开一本书的过程

2. 父进程与子进程

  • 父进程:创建其他进程的进程,如系统启动时的 systemd
  • 子进程:由父进程创建的进程,如用户启动的 bash 下的 vim

二、查看进程信息

1. ps 命令:静态查看进程

功能:显示当前系统中的进程状态。

常用选项

选项说明
ps -aux显示所有用户的进程(BSD 风格)
ps -ef以标准格式显示所有进程(System V 风格)
ps -u 用户名查看指定用户的进程

输出字段说明

字段说明
USER进程所有者
PID进程ID
%CPUCPU 占用率
%MEM内存占用率
STAT进程状态(R: 运行, S: 睡眠, Z: 僵尸, T: 停止)
START启动时间
COMMAND启动命令

示例

ps -aux | grep vim    # 查找所有 vim 进程

2. top 命令:动态查看进程

功能:实时显示系统资源使用情况和进程状态。

常用快捷键

快捷键功能
P按 CPU 使用率排序
M按内存使用率排序
T按运行时间排序
1显示所有 CPU 核心状态
q退出

示例

top    # 启动动态监控

3. pgrep 命令:根据条件查询进程

功能:根据名称、用户、终端等条件查找进程 PID。

常用选项

选项说明
-l显示进程名和 PID
-u 用户查找指定用户的进程
-t 终端查找在指定终端运行的进程

示例

pgrep -l -u root -t tty1    # 查找 root 用户在 tty1 终端上的进程

4. pstree 命令:以树形显示进程

功能:以树状结构显示进程及其父子关系。

常用选项

选项说明
-p显示 PID
-u显示用户名
-a显示完整命令

示例

pstree -aup    # 显示所有进程树,包括用户和命令

三、进程的启动方式

1. 手工启动

  • 前台启动:命令执行期间占用终端;
  • 后台启动:在命令后加 &,不占用终端。

示例

cp /dev/cdrom mycd.iso &    # 后台复制光盘

2. 调度启动

  • 使用 at 设置一次性任务;
  • 使用 crontab 设置周期性任务。

四、进程的前后台调度

1. Ctrl + Z:挂起进程

将当前前台进程暂停并放入后台。

2. jobs:查看后台任务

示例

jobs -l    # 显示所有后台任务及其 PID

3. fg / bg:前后台切换

命令功能
fg %任务号将后台任务调至前台
bg %任务号将挂起的任务在后台继续运行

示例

fg %1    # 将任务1调至前台
bg %2    # 将任务2在后台继续运行

五、终止进程

1. Ctrl + C:中断前台进程

2. kill:终止指定进程

常用选项

选项说明
kill PID正常终止
kill -9 PID强制终止

示例

kill 1234        # 终止 PID 为 1234 的进程
kill -9 1234     # 强制终止

3. killall:按进程名终止

示例

killall vim      # 终止所有 vim 进程

4. pkill:按属性终止进程

示例

pkill -u root    # 终止所有 root 用户的进程

六、计划任务管理

1. at:一次性任务

示例

at 16:30 2025-08-20
at> echo "任务完成" > /tmp/log.txt
at> <Ctrl+D>    # 提交任务

2. cron:周期性任务

编辑任务

crontab -e

时间格式

分钟 小时 日 月 周 命令

示例

30 2 * * * /usr/bin/backup.sh    # 每天凌晨2:30执行备份

常用命令

命令说明
crontab -l查看当前用户的计划任务
crontab -r删除所有计划任务

七、总结与常用命令速查

命令功能示例
ps -aux查看所有进程ps -aux | grep nginx
top动态查看进程与资源top
pgrep按条件查进程pgrep -u root
pstree树形显示进程pstree -p
jobs查看后台任务jobs -l
fg/bg前后台切换fg %1
kill终止进程kill -9 1234
crontab -e编辑计划任务crontab -e

如果有新的想法,欢迎随时和我讨论!

总结

通过本章的学习,您将能够清晰地洞察系统内部的工作状态,精准地控制每一个运行中的任务,并建立起自动化运维的初步思维,为成为一名合格的Linux系统管理者奠定坚实的基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值