Linux 进程管理入门:ps、top、kill 一次讲清

举报
yd_299492234 发表于 2026/11/06 10:09:06 2026/11/06
【摘要】 Linux 进程管理入门:ps、top、kill 一次讲清服务器跑着跑着变慢,或者某个程序卡住不动,第一反应往往是重启。其实很多时候问题只是一个失控的进程。学会看进程、管进程,是 Linux 入门绕不开的一课。 先弄清:什么是进程进程就是正在运行的程序。同样一个程序,跑起来之后就是一个进程,每个进程都有一个唯一的编号,叫 PID。系统启动后第一个进程是 init,之后所有进程都由它一层层派...

Linux 进程管理入门:ps、top、kill 一次讲清

服务器跑着跑着变慢,或者某个程序卡住不动,第一反应往往是重启。其实很多时候问题只是一个失控的进程。学会看进程、管进程,是 Linux 入门绕不开的一课。

先弄清:什么是进程

进程就是正在运行的程序。同样一个程序,跑起来之后就是一个进程,每个进程都有一个唯一的编号,叫 PID。系统启动后第一个进程是 init,之后所有进程都由它一层层派生出来,像一棵树。

进程有几种常见状态:运行中、睡眠中(等输入或等磁盘)、僵尸(已经结束但父进程还没收尸)。正常运维最常打交道的,是前两种。

ps:先看一眼谁在跑

ps 是最基础的查看命令。直接敲 ps 只能看到当前终端自己的几个进程,想看全貌要加参数:

ps aux

输出有好几列,常用的就四个:USER 是谁跑的,PID 是编号,%CPU 和 %MEM 是占用,COMMAND 是命令本身。配合 grep 可以快速定位某个程序:

ps aux | grep nginx

注意 grep 自己也会出现在结果里,多出来的一行不用理会。想看进程之间的父子关系,加一个 --forest,树形结构一目了然,找「谁拉起了谁」特别方便。

top:实时盯着资源

ps 是快照,top 是直播。敲 top 进入后,屏幕每几秒刷新一次,默认按 CPU 占用从高到低排。表头几行是系统总览:负载、任务总数、CPU 和内存使用情况。

几个常用按键要记住:按 M 改按内存排序,按 P 改回按 CPU 排序,按 k 可以直接杀进程(输入 PID 确认),按 q 退出。top 里看到的负载 load average 有三个数字,分别代表过去 1 分钟、5 分钟、15 分钟的平均负载,长期高于 CPU 核心数就说明机器真的忙。

轻量一点的替代品是 htop,彩色界面、支持鼠标和方向键,装一个用着更顺手,但服务器上不一定预装。

kill:结束进程要讲分寸

找到捣乱的进程之后,就该请它出去了。kill 后面跟 PID:

kill 1234

默认发的是 TERM 信号,意思是「请你正常退出」,程序有机会保存数据、释放资源。大多数情况下这就够了,不要一上来就用最狠的手段。

只有程序完全卡死、对 TERM 毫无反应时,才用 -9 强制结束:

kill -9 1234

-9 是 KILL 信号,系统直接收回资源,程序来不及做任何清理。数据库、写一半的文件都可能因此损坏,所以它是最后手段,不是首选。

还有一个按名字杀的 pkill,比如 pkill -f nginx,写名字比写数字方便,但名字写错会误伤,执行前先用 pgrep -f nginx 对一下 PID 列表,确认无误再动手。

实战:一次卡顿的排查顺序

服务器变卡时,可以按这个顺序走一遍:先 top 看是 CPU 还是内存被吃满,再 ps aux 找到占用最高的进程,确认它是什么程序、是谁启动的;如果是自己写的服务,先看它的日志再决定杀不杀;杀之前记下 PID 和启动命令,杀完确认服务是否按预期重启,systemctl status 看一眼状态。

有一次我的服务器 CPU 长期满载,top 排第一的是一个早就该退出的测试脚本,kill 掉之后负载立刻回落。问题不在机器配置,在一个没人管的进程。

容易踩的坑

第一,不要随便杀 root 跑的系统进程,杀错了可能直接把服务搞挂。第二,kill -9 不要当成习惯,先 TERM 再 KILL。第三,僵尸进程杀不掉,它已经死了,等父进程回收或者重启父进程才是正解,对着僵尸进程反复 kill 纯属白费力气。

小结

ps aux 看快照,top 看实时,kill 先温和后强制。进程管理没有魔法,就是先看清、再动手、留后路。把这三条命令练熟,服务器出小问题时心里就有底了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。