Linux 进程管理:ps、top、kill 一次讲清
Linux 上排查问题,绕不开进程管理。ps 负责看,top 负责盯,kill 负责停,三者分工清楚,组合起来能覆盖日常绝大多数场景。
ps 是快照。ps aux 可以看到所有用户的进程,重点看三列:%CPU、%MEM 和 COMMAND。%CPU 长期居高不下,说明某个进程在空转或死循环;%MEM 持续上涨,则要怀疑内存泄漏。ps aux | grep nginx 这种组合,可以快速确认某个服务到底起了几个进程、跑在哪个用户下。
top 是实时屏。top 打开后默认按 CPU 排序,每 3 秒刷新一次,按 M 可以改按内存排序,按 P 切回 CPU 排序。看 top 先看 load average 三个数:分别代表 1 分钟、5 分钟、15 分钟的平均负载,单核机器上长期超过 1 就说明排队了。再看第一行的 Tasks,zombie 数量不为零时,说明有僵尸进程没被父进程回收。
kill 是信号,不是字面意义的杀。kill 默认发 TERM(15),让进程自己收尾;进程不响应时再用 kill -9(KILL)强制结束,但 -9 不给进程清理资源的机会,可能留下临时文件或锁,所以永远先 TERM、后 KILL。killall 和 pkill 可以按名字批量操作,批量之前务必先用 pgrep 确认名单,避免误伤同名进程。
一套顺手的排查链路是:先 top 看谁在吃资源,再 ps aux 确认进程详情和启动参数,最后视情况 kill TERM,顽固的再 -9。记住顺序:看清楚再动手,TERM 优先于 KILL,批量操作前先 pgrep 核对。
- 点赞
- 收藏
- 关注作者
评论(0)