Linux 进程管理入门:ps、top 与 kill

举报
vanseny 发表于 2026/11/09 10:05:56 2026/11/09
【摘要】 服务器突然变卡,风扇狂转,网页打不开,第一反应往往是重启。但重启之前先看一眼:到底是哪个进程在捣乱。进程管理就三个动作:ps 看谁在跑,top 看谁最占资源,kill 停掉失控的那个。学会这三步,服务器卡了不再只会重启。 小节一、ps:先看谁在跑出问题先列一张进程清单,ps 就是干这个的:ps aux这行命令列出系统里所有正在跑的进程。重点看几列:USER 是谁启动的,%CPU 和 %MEM...

服务器突然变卡,风扇狂转,网页打不开,第一反应往往是重启。
但重启之前先看一眼:到底是哪个进程在捣乱。
进程管理就三个动作:ps 看谁在跑,top 看谁最占资源,kill 停掉失控的那个。学会这三步,服务器卡了不再只会重启。

小节一、ps:先看谁在跑

出问题先列一张进程清单,ps 就是干这个的:

ps aux

这行命令列出系统里所有正在跑的进程。重点看几列:
USER 是谁启动的,%CPU 和 %MEM 占了多少资源,
COMMAND 是它在跑什么命令。一下子就能看出,
是自己的服务在跑,还是某个陌生进程在偷偷吃资源。

只关心某一个服务,可以直接点名过滤:

ps aux | grep nginx

这行是在进程清单里只找带 nginx 的行。
注意结果里会多出一行 grep 自己,那是过滤命令本身,
不是真的 nginx 进程,认准了别误杀。

想看某个进程的完整家族关系,换一种写法:

ps -ef --forest

这样能看到谁是谁启动的父子关系,一个服务拉起的子进程
一目了然,找问题时顺着树往上找根源。

小节二、top:看谁最占资源

ps 是拍一张快照,top 是看实时直播:

top

打开后屏幕每几秒刷新一次,默认按 CPU 占用从高到低排。
最上面几行是系统总览:负载、CPU、内存;下面是进程榜单,
排第一的那个,就是当前最能吃的进程。

top 里按几个键就能换视角:按 M 按内存占用排,
按 P 按 CPU 占用排,按 q 退出。卡住的时候先看榜首:
如果是一个自己认识的服务在冲高,多半是它内部出了问题;
如果是一个不认识的进程,先查清它是什么再动手。

只想看内存大户,不用一直盯着 top 刷屏,也可以拍一张快照:

ps aux --sort=-%mem | head -10

这行是按内存占用从大到小排,只看前 10 名。
一眼定位内存大户,比在 top 里翻找更快。

小节三、kill:停掉失控的进程

找到失控的进程之后再动手。先温和地请它退出:

kill 1234

1234 是进程的编号,也就是 ps 里看到的 PID。
默认的 kill 不带参数,是发一个“请正常退出”的信号,
进程收到后会自己收拾干净再走,这是最体面的停法。

等了几秒还没停,再用强制的办法:

kill -9 1234

-9 是强制结束,进程来不及收拾就直接被干掉。
它只适合对付完全卡死、怎么都不退出的进程,
正常服务不要一上来就用 -9,容易丢数据、留下半截文件。

不知道 PID,只记得进程名字,可以先查再杀:

pgrep -f python

pgrep 按名字找进程编号,确认编号没错再 kill。
名字撞车很常见,比如一台机器上跑着好几个 python 程序,
pgrep 列出的每一个编号都要对上号,确认是目标再动手。

小节四、让长任务在后台自己跑

有些任务要跑很久,比如备份、导数据,终端一关它就跟着停。
先把它挂到后台:

nohup python backup.py > backup.log 2>&1 &

nohup 的意思是终端关了也不停,输出写进 backup.log,
最后的 & 是把它放进后台,终端立刻空出来继续干别的。
想看它跑到哪了,直接看日志文件就行。

事后想找这个后台任务,用 ps 查名字,
或者用 jobs 看当前终端挂起的后台任务:

jobs

jobs 只看得到当前这个终端里挂起的任务,
换个终端就看不到了,所以长任务启动时最好记下它的 PID,
或者把输出写进日志,事后按名字查最稳。

小节五、三个新手常踩的坑

第一,看到 CPU 高就乱杀进程。先看清进程是谁的、是干什么的,
系统关键进程杀错了,服务直接瘫掉。动手前先问一句:
这个进程停了,哪个服务会受影响?答不上来就先不动。

第二,一上来就用 kill -9。强制结束不给进程收尾的机会,
正在写的文件可能只写了一半,数据库可能留下不一致的状态。
先 kill 不带参数等几秒,不行再升级到 -9。

第三,杀错同名进程。一台机器上同名进程可能有好几个,
只凭名字杀很危险。先用 pgrep 对编号,再用 ps 看完整命令行
确认身份,编号和命令行都对上再动手,宁可慢一步也不错杀。

ps 看谁在跑,top 看谁最占资源,kill 只停确认过的失控进程,
长任务挂后台、留日志。服务器下次再卡,先花一分钟看一眼
进程榜单,再决定是重启、停进程,还是放它自己跑完。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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