Linux 进程管理入门:ps、top 与 kill 的正确用法

举报
yd_278701352 发表于 2026/11/09 01:33:05 2026/11/09
【摘要】 服务器跑着跑着变卡,第一反应往往是「内存不够了」或者「磁盘满了」,但很多时候真凶是一个失控的进程:死循环占满 CPU、内存泄漏越吃越多、僵尸进程越攒越多。学会看进程、管进程,是排查 Linux 服务器问题的基本功,常用的就三组命令:ps、top 和 kill。先看当前都有哪些进程在跑。ps aux 是最常用的一条:ps aux输出里每行一个进程,重点看这几列:USER 是谁起的、%CPU 和...

服务器跑着跑着变卡,第一反应往往是「内存不够了」或者「磁盘满了」,但很多时候真凶是一个失控的进程:死循环占满 CPU、内存泄漏越吃越多、僵尸进程越攒越多。学会看进程、管进程,是排查 Linux 服务器问题的基本功,常用的就三组命令:ps、top 和 kill。

先看当前都有哪些进程在跑。ps aux 是最常用的一条:

ps aux

输出里每行一个进程,重点看这几列:USER 是谁起的、%CPU 和 %MEM 占了多少资源、STAT 是进程状态、COMMAND 是启动命令。STAT 里常见的字母要认得:R 正在运行、S 睡眠等待、D 不可中断的等待(通常在等磁盘 IO)、Z 是僵尸进程、T 被暂停了。一个进程长期处于 D 状态,往往说明磁盘 IO 出了问题,而不是 CPU 不够。

ps aux 的输出通常很长,配合 grep 只看自己关心的:

ps aux | grep nginx

注意这条命令本身也会出现在结果里——grep nginx 这个进程自己也带 nginx 字样。想排除它可以写成 grep [n]ginx,方括号的写法让 grep 自身不再匹配,是个实用的小技巧。

如果想看某个进程的完整树形关系,用 pstree 更直观:

pstree -p

它会把父子进程按树状展开,-p 显示每个进程的 PID。找「谁是谁拉起来的」时比 ps 的平铺列表好用得多,比如确认某个后台服务是不是由 systemd 正常拉起的。

ps 是快照,只看某一刻。要看资源占用随时间的变化,用 top:

top

top 默认每三秒刷新一次,按 CPU 占用从高到低排序。界面分上下两部分:上面是系统总览(负载、任务数、CPU 与内存总量),下面是进程列表。几个常用按键记一下:按 M 改按内存排序,按 P 切回按 CPU 排序,按 1 展开每个 CPU 核心的占用情况,按 q 退出。

如果只想看自己的进程,不想被系统进程干扰,启动时加个用户过滤:

top -u alix

嫌 top 界面太花哨,也可以用 htop——支持鼠标点击、方向键滚动、按 F9 直接杀进程,交互友好得多。很多发行版默认没装,需要自己装一个。

找到问题进程,下一步就是处理它。kill 不是「杀死」的同义词,它本质是给进程发信号:

kill 1234

不带信号编号时默认发 SIGTERM(信号 15),意思是「请你自己收拾干净再退出」。写得规矩的程序收到后会保存状态、释放资源再走,这是最体面的停法,应该先试它。

等几秒还没退,再升级:

kill -9 1234

-9 是 SIGKILL,由内核直接终结进程,不给它任何收尾机会。数据没来得及落盘就可能丢,而且僵尸进程对 -9 也没用——僵尸进程已经死了,只是父进程还没回收它的退出状态,杀它没用,得去找它的父进程处理。

还有两个常用信号值得知道。kill -HUP 1234(信号 1)常用来让服务重新读配置文件,很多守护进程收到它会平滑重载而不中断服务;kill -STOP 1234(信号 19)是暂停进程,kill -CONT 1234(信号 18)再恢复,调试时偶尔能派上用场。

最后说一个常见坑:杀进程先确认 PID 没看错行。ps aux | grep 的结果里经常一行挨着一行,PID 在第二列,kill 之前先用 ps -p 1234 -o pid,cmd 核对一下要杀的到底是谁。生产环境上一个手滑杀错主进程,代价比多等几秒大得多。

总结一下排查节奏:先 ps aux 看全貌、top 看动态占用,定位到问题进程后先 SIGTERM 体面退出、不行再 -9,杀之前务必核对 PID。这三组命令够用很久,下一步可以去学 systemd 的 systemctl status,把进程管理和服务管理串起来。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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