Linux 进程管理教程:ps、top 与 kill 实战
摘要
服务器上程序卡死、CPU 被吃满怎么办?本教程依据 procps-ng 官方手册整理,介绍 ps 查看与排序进程、top/htop 实时监控、kill 信号的正确用法(先 TERM 后 KILL)、前后台切换与 nohup,以及用 lsof 排查端口占用。
Linux 进程管理教程:ps、top 与 kill
服务器上程序卡死了、CPU 被某个进程吃满了、想找到某个服务在跑没跑——这些都属于进程管理的日常。本教程依据 procps-ng 官方手册与 util-linux 文档整理,覆盖 ps、top、kill、nohup 等核心命令。
一、查看进程:ps
ps aux 是最常用的快照命令(BSD 风格参数):
输出关键列:PID 进程号、%CPU/%MEM 占用、STAT 状态(R 运行、S 睡眠、Z 僵尸)、COMMAND 命令名。
树状查看父子关系:
二、实时监控:top 与 htop
top 内的常用按键:
按键 | 作用 |
|---|---|
| 按 CPU 排序 |
| 按内存排序 |
| 输入 PID 杀进程 |
| 展开显示每个核心 |
| 退出 |
htop 是 top 的彩色增强版(sudo apt install htop),支持鼠标点选、方向键滚动、F9 直接发信号,装一个绝对不亏。
三、终止进程:kill
kill 发的是"信号",不是单纯"杀":
使用原则:先试默认的 TERM(给进程保存数据、善后的机会),不行再上 -9。对数据库这类服务直接 -9 可能丢数据。
四、前后台切换
在终端里,Ctrl+Z 可以把正在运行的程序暂停到后台,然后:
想让程序在断开 SSH 后也继续跑,用 nohup:
输出会写到 nohup.out。不过更推荐用之前讲过的 systemd 服务来管理常驻程序。
五、其他实用命令
lsof -i :端口 是排查"端口被占用"问题的标准动作。
六、总结
场景 | 命令 |
|---|---|
找进程 |
|
看 CPU/内存占用 |
|
正常终止 |
|
强制终止 |
|
杀端口占用者 |
|
断线后继续跑 |
|
进程管理的核心套路就一句话:ps/top 找到 PID,kill 发对信号。
