马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
服务器进程多了以后,靠 top 一眼扫是扫不过来的,还是得能用 ps 精确抓出某个进程。这篇把 ps -aux 配合 grep 的过滤套路讲清楚,再补齐 kill、pkill、top -p 这几个收尾动作。
一、ps 是什么
ps(Process Status)用来打印当前系统进程快照。和 top 的实时刷新不同,ps 输出的是执行那一刻的静态结果,更适合脚本化处理。
二、常用选项
-a:显示所有用户的进程。
-u:以用户友好格式展示,含用户名、CPU、内存占用。
-x:显示没有关联终端的进程(后台进程)。
三者组合 ps -aux 就是最常用的一套,能看到 PID、用户、CPU/内存占比、启动时间、命令行等字段。
三、组合 grep 精确定位
ps -aux | grep 关键字
比如想找某个关键字出现的进程:
ps -aux | grep SnSniffer
输出类似:
user 1234 0.5 1.2 123456 7890 ? S 12:34 0:00 /usr/bin/sniffer_demo
这里 1234 就是 PID。
四、一个小技巧:避免 grep 自己出现在结果里
grep 关键字 这条命令本身也是个进程,会混进结果。用字符类把关键字拆开就不自匹配了:
ps -aux | grep [S]nSniffer
这条在很多排查文档里都能看到,本质是利用 [S]nSniffer 匹配 SnSniffer 但字面不等于自身。
五、拿到 PID 之后
看更详细的信息
top -p 1234
实时盯住这个 PID 的 CPU 和内存变化,按 q 退出。
正常结束进程
kill 1234
强制结束
kill -9 1234
-9 是 SIGKILL,不给进程清理机会,只在正常信号无效时用。
按名字批量结束
pkill 关键字
六、两个常见卡点
- 查不到:进程名跟你搜的不一致(可能有下划线、大小写不同),或者已经退出了。可以先
ps -aux | head 看一眼真实命令行再搜。
- 权限不足:有些进程属于 root,普通用户看不到也管不了,加
sudo:sudo ps -aux | grep 关键字、sudo kill 1234。
七、顺手能接的几条命令
top / htop:实时看整体负载。
lsof -p 1234:看这个进程打开了哪些文件和端口。
systemctl status 服务名:如果是 systemd 服务,优先用服务管理而不是裸 kill。
把 ps 定位、grep 过滤、kill 收尾这三步串起来,绝大多数"进程异常"的问题都能先看清状况再动手。
qidao123.com企服评测-应用市场 编辑提示:本文为 Linux 进程查看与结束的命令整理,kill -9 与 pkill 会影响正在运行的服务,操作前请确认目标进程归属。 |