《Linux 进程管理:ps、top 与 kill 实战》

举报
yd_236639601 发表于 2026/11/11 11:06:13 2026/11/11
【摘要】 Linux 进程管理:ps、top 与 kill 实战服务卡住了、CPU 跑满了、内存被谁吃光了——第一步永远是先看进程。ps、top、kill 是排查这类问题的基本功,用熟了能省下大把时间。 一、ps:看一眼当前进程ps aux | head -20 # 最常用的全景ps aux | grep nginx # 找特定进程ps -ef --forest ...

Linux 进程管理:ps、top 与 kill 实战

服务卡住了、CPU 跑满了、内存被谁吃光了——第一步永远是先看进程。ps、top、kill 是排查这类问题的基本功,用熟了能省下大把时间。

一、ps:看一眼当前进程

ps aux | head -20        # 最常用的全景
ps aux | grep nginx      # 找特定进程
ps -ef --forest          # 树形看父子关系
ps aux --sort=-%cpu | head -10   # 按 CPU 占用排前十

重点看几列:%CPU、%MEM 是占用,STAT 是状态(R 运行、S 睡眠、D 不可中断睡眠、Z 僵尸),TIME 是累计 CPU 时间。TIME 很大但 CPU 不高,多半是长跑服务;CPU 持续 100% 才值得警惕。

二、top:实时盯着

top 是动态视图,默认按 CPU 排序,每 3 秒刷新:

  • P 按 CPU 排,M 按内存排,T 按运行时间排
  • k 杀进程,1 展开看每个 CPU 核心,q 退出

更现代的替代是 htop(没装的话 sudo apt install htop),支持鼠标、横向滚动,配色也更清楚。

top -u www-data          # 只看某个用户的进程
top -b -n 1 | head -20   # 批处理模式输出一次,适合写脚本抓快照

三、kill:先温柔后强硬

进程失控先别急着 -9。信号分级:

kill 1234                # 默认 TERM,让进程自己收尾
kill -TERM 1234          # 同上,显式写法
kill -INT 1234           # 模拟 Ctrl+C
kill -9 1234             # KILL,强制结束,进程没机会清理

顺序应该是:先 kill 等几秒,没反应再 kill -9。直接 -9 可能留下半写的文件、未释放的锁,下次启动反而出问题。

按名字杀用 pkill 更顺手:

pkill -f "python3 app.py"   # 按命令行匹配
pkill -u testuser           # 杀掉某用户全部进程(谨慎)
pgrep -af python            # 先看会命中哪些,确认再杀

pkill 之前先 pgrep 核对一遍,是避免误杀的铁律。

四、僵尸进程与 D 状态

  • Z(僵尸):进程已死、父进程没回收。kill 对它无效,要去找它的父进程(ps -o ppid= -p <pid>),重启父进程或让 init 接管回收。
  • D(不可中断睡眠):通常在等磁盘 IO,磁盘慢或挂了会堆一堆 D 状态。杀不掉它,先查 iostat、看磁盘是不是满了或掉了。

五、日常组合拳

# 内存谁吃得最多
ps aux --sort=-%mem | head -10

# 找 CPU 最高的进程并看它在干嘛
top -b -n 1 | head -15

# 某个服务重启后还卡着,确认旧进程还在不在
pgrep -af nginx

小结

ps 是快照,top 是直播,kill 先 TERM 后 KILL。排查时先看占用、再看状态、最后再动手杀,配合 pgrep 先确认目标,基本不会误伤。僵尸进程找父进程、D 状态查磁盘,这两条记住就够了。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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