新手学Linux别死啃命令!第五篇:进程管理精讲,看懂系统运行与卡死修复

前言

前面我们学完了文件操作、权限、查找、压缩打包,都是操作“静态文件”。

进程管理是 Linux 系统动态核心:系统卡、程序卡死、CPU占用高、后台运行、程序退出、开机自启,全部和进程有关。

很多新手只会敲命令,不懂程序与进程区别、父子进程、前台后台、信号杀死原理,遇到程序卡死只能重启服务器。

本篇把进程原理 + 查看命令 + 进程控制 + 前后台调度 + 企业级杀进程规范全部讲透,是 Linux 运维最重要的一章。

一、彻底搞懂:程序 & 进程(核心原理)

1. 程序(静态)

存放在硬盘上的可执行文件、脚本、二进制文件,静静躺着,不占用CPU、不占用内存,属于静态文件。

例如:ls、java、python、自己写的 a.out

2. 进程(动态)

把硬盘上的程序加载到内存、交给CPU运行,产生的动态实例就是进程。

进程特点:

  • 占用内存、占用CPU资源

  • 每一个进程都有唯一PID(进程号)

  • 程序可以多次运行,产生多个不同进程

3. 进程树形结构(父子进程)

  • Linux 所有进程都是树形结构

  • PID=1 是系统第一个进程(祖宗进程)

  • 除1号进程外,所有进程都有父进程

  • 父进程可以创建、孵化子进程

  • 父进程退出,子进程会被1号进程接管

理解父子进程:系统不会凭空出现进程,所有进程都是被“生出来”的


二、查看进程的四大工具:pstree / ps / top / pidof

1. pstree 树形查看进程关系

专门用来查看父子进程结构,比ps更直观。

常用参数:

  • -p:显示每个进程的 PID 号(最常用)

实操命令:

pstree
pstree -p

适用场景:排查进程嵌套、僵尸进程、父子进程卡死问题。

2. ps 静态查看进程(工作最常用)

ps 是快照式查看:瞬间抓取当前进程状态,不刷新

常用参数(全部精讲):

  • a:显示所有控制台用户进程

  • u:展示用户名、CPU、内存占用

  • l:长格式,显示详细进程状态、PID、PPID

  • x:显示无终端进程(后台守护进程)

  • r:只显示正在运行(RUNNING)的进程

  • p PID:只查看指定PID的进程

  • -C 命令名:查看某个程序的所有进程

  • -U 用户名:查看某个用户的所有进程

生产最常用组合(必背):

ps aux      # 查看系统所有进程(运维标配)
ps efl      # 查看父子进程关系详细信息

3. top 动态实时进程监控

top 相当于Linux任务管理器,实时刷新CPU、内存、进程状态。

基础参数:

  • -p PID:只监控指定进程

进入 top 后的交互快捷键(非常重要):

  • q:退出top

  • h / ?:查看帮助

  • M:按内存占用从大到小排序

  • P:按CPU占用从大到小排序(最常用)

  • u 用户名:只看某用户进程

  • k:输入PID,直接杀死进程

  • r:修改进程优先级

适用场景:排查CPU爆满、内存泄漏、程序卡死。

4. pidof 快速获取进程PID

直接根据程序名,查出运行PID,不用复杂过滤。

pidof java
pidof python

三、进程控制:kill 信号精讲(面试+工作重点)

很多新手只会 kill -9,不懂原理,容易丢数据、损坏服务!

1. 查看所有信号

kill -l

2. 三大核心信号(必须吃透)

① kill -15(默认优雅结束)

默认信号,kill PID 等价 kill -15 PID

作用:

  • 通知程序正常收尾

  • 保存日志、释放资源、关闭连接、退出

缺点:进程卡死、死锁时不生效

② kill -9(强制杀死)

最高权限强制终止,系统级强制销毁进程。

特点:

  • 立刻结束,不给任何保存机会

  • 卡死进程、僵尸进程只能用 -9

⚠ 禁忌:尽量不要随便对业务程序使用-9,容易损坏文件、丢失数据

③ kill -1(重启进程)

让进程重新加载配置、重启刷新,不杀死进程本体。

3. 企业标准操作流程

先温柔杀,杀不掉再强制杀:

kill PID
kill -9 PID

四、前台进程 & 后台进程(重点难点)

所有运维、脚本、服务部署,全部依赖前后台切换!

1. 前台进程

默认运行方式:占用当前终端,窗口不能关、不能输入新命令,退出终端程序直接结束。

2. 后台进程(守护运行)

不占用终端,关闭窗口也能跑,适合长时间运行程序。

3. 后台运行符号

命令末尾加 & 直接放入后台

python test.py 

4. jobs 查看后台任务列表

查看当前终端所有后台暂停/运行任务,展示 job ID

jobs

5. fg 把后台进程切回前台

fg + 任务编号,恢复前台运行

fg 1

6. bg 激活暂停的后台进程

后台进程暂停后,用 bg 继续运行

bg 1

7. 杀死后台任务(按 job ID)

通过 %编号 直接操作后台进程

kill %1
kill -9 %1


五、新手高频坑点(独家总结)

  • 坑1:直接乱用 kill -9:会导致文件损坏、日志丢失、数据库异常

  • 坑2:后台运行程序直接关窗口:普通 & 进程会被终端挂断终止(进阶需要nohup)

  • 坑3:分不清程序和进程:程序是文件,进程是运行实例

  • 坑4:不懂父子进程:父进程退出,子进程变成孤儿进程

  • 坑5:top 不会排序:不会P/M排序,找不到占用资源的进程

本篇小结

1. 程序静态、进程动态,进程有独立PID、树形父子结构。

2. pstree 看关系、ps 查快照、top 看实时状态、pidof 快速查PID。

3. kill -15 优雅退出、kill -9 强制杀死、kill -1 重载刷新。

4. & 后台运行、jobs 查看、fg/bg 前后台切换、kill %号 操作后台任务。

本篇是 Linux 服务部署、脚本运行、服务器运维的绝对核心

下期预告

下一篇我们学习 Shell 基础、管道、重定向与简单脚本入门,正式从“敲单条命令”进阶到“自动化运维”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值