Linux 进程管理入门:ps、top、kill 三个命令,卡了先定位再动手

举报
yd_218239968 发表于 2026/11/06 08:42:50 2026/11/06
【摘要】 很多新手管服务器都有一个习惯:网站一卡就重启。重启确实能暂时解决问题,但下次还会卡,而且你永远不知道上次卡的原因。更稳的做法是先定位:是哪个进程在吃资源、吃多少、能不能停。Linux 里正在运行的程序就叫进程,管进程只需要三个命令。第一步,用 ps 看进程清单。ps aux 是最常用的一组参数,a 表示所有用户的进程,u 表示带上用户和资源占用列,x 表示包括没有终端的后台进程。跑一次就能看...

很多新手管服务器都有一个习惯:网站一卡就重启。重启确实能暂时解决问题,但下次还会卡,而且你永远不知道上次卡的原因。更稳的做法是先定位:是哪个进程在吃资源、吃多少、能不能停。Linux 里正在运行的程序就叫进程,管进程只需要三个命令。

第一步,用 ps 看进程清单。ps aux 是最常用的一组参数,a 表示所有用户的进程,u 表示带上用户和资源占用列,x 表示包括没有终端的后台进程。跑一次就能看到每行一个进程:USER 是谁跑的,%CPU 和 %MEM 是它占了多少 CPU 和内存,COMMAND 是它在跑什么命令。想找某个程序,直接加 grep 过滤,比如 ps aux | grep nginx,就只看和 nginx 有关的进程。注意 grep 自己那一行也会出现,忽略它就行。

第二步,用 top 看实时占用。ps 是拍一张快照,top 是实时监控屏:打开后默认按 CPU 占用从高到低排,谁最吃资源一眼就能看到。表头三行最值得看:load average 是系统平均负载,1 分钟、5 分钟、15 分钟三个数,长期高于 CPU 核数就说明真的忙;%Cpu(s) 看整体 CPU 用了多少;MiB Mem 看内存还剩多少。top 里按 M 可以改按内存排序,按 q 退出。如果 top 看着费劲,装一个 htop 也行,界面更直观、支持鼠标点选,功能和 top 是一回事。

第三步,用 kill 停掉失控的进程。定位到捣乱的进程后,记下它的 PID(ps 输出第二列那个数字),先用 kill PID 温和地停它——这相当于告诉程序“请你自己收拾好再退出”,正在写的数据还有机会保存。等几秒再 ps 查一下,还在的话再用 kill -9 PID 强制结束,这是最后一招,数据没保存就直接丢了,所以只对确认失控、温和停不掉的进程用。千万别图省事对着一串 PID 批量 kill -9,停错关键进程整个服务就跟着倒了。

最后说三条红线。第一,PID 1 是系统的 init 进程,永远别杀它,杀了等于把整台机器的根拔掉。第二,root 跑的系统进程、数据库主进程,动手前先确认它是不是你要停的那个,别凭名字猜——同名进程可能有好几个,认准 PID 再动手。第三,停进程之前先想清楚它会不会自动重启:systemd 管着的服务被 kill 后可能马上又被拉起来,这种情况要先用 systemctl stop 停服务,而不是反复 kill,这也是服务管理和进程管理分工的地方。

总结一下:服务器卡了别急着重启,先 ps 列清单、top 看实时占用、kill 温和停失控进程。定位清楚再动手,问题复发时你也有据可查,而不是每次都靠重启蒙过去。今天就在自己的服务器上跑一遍 ps aux 和 top,认一认常驻的那几个进程,下次真卡了就知道该看谁了。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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