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

Linux 进程管理教程：ps、top 与 kill 服务器上程序卡死了、CPU 被某个进程吃满了、想找到某个服务在跑没跑——这些都属于进程管理的日常。本教程依据 procps-ng 官方手册与 util-linux 文档整理，覆盖 ps、top、kill、nohup 等核心命令。一、查看进程：ps ps aux 是最常用的快照命令（BSD 风格参数）： ps aux # 所有用户的全部进程 ps aux | grep nginx # 过滤出 nginx 相关进程 ps aux --sort=-%cpu | head # 按 CPU 占用降序取前几名 ps aux --sort=-%mem | head # 按内存占用降序输出关键列：PID 进程号、%CPU/%MEM 占用、STAT 状态（R 运行、S 睡眠、Z 僵尸）、COMMAND 命令名。树状查看父子关系： pstree -p # 树状显示，带 PID ps -ef --forest # 同样是树状结构二、实时监控：top 与 htop top top 内的常用按键：按键作用 P 按 CPU 排序 M 按内存排序 k 输入 PID 杀进程 1 展开显示每个核心 q 退出 htop 是 top 的彩色增强版（sudo apt install htop），支持鼠标点选、方向键滚动、F9 直接发信号，装一个绝对不亏。三、终止进程：kill kill 发的是"信号"，不是单纯"杀"： kill 1234 # 默认发 SIGTERM(15)，请求正常退出 kill -9 1234 # SIGKILL，强制杀死（进程无法拦截，慎用） kill -1 1234 # SIGHUP，常用于让服务重载配置 killall nginx # 按名字杀所有同名进程 pkill -f "python app.py" # 按命令行匹配杀使用原则：先试默认的 TERM（给进程保存数据、善后的机会），不行再上 -9。对数据库这类服务直接 -9 可能丢数据。四、前后台切换在终端里，Ctrl+Z 可以把正在运行的程序暂停到后台，然后： jobs # 查看后台任务 bg %1 # 让 1 号任务在后台继续跑 fg %1 # 调回前台想让程序在断开 SSH 后也继续跑，用 nohup： nohup ./myapp & 输出会写到 nohup.out。不过更推荐用之前讲过的 systemd 服务来管理常驻程序。五、其他实用命令 uptime # 开机时长与平均负载 free -h # 内存使用 lsof -i :8080 # 谁占用了 8080 端口 kill $(lsof -t -i:8080) # 直接杀掉占用 8080 端口的进程 lsof -i :端口 是排查"端口被占用"问题的标准动作。六、总结场景命令找进程 ps aux | grep 名字看 CPU/内存占用 top（P/M 排序）正常终止 kill PID 强制终止 kill -9 PID（先试不带 -9）杀端口占用者 kill $(lsof -t -i:端口) 断线后继续跑 nohup 命令 & 进程管理的核心套路就一句话：ps/top 找到 PID，kill 发对信号。