文档首页> 互联网资讯> Linux查看进程:精准定位异常

Linux查看进程:精准定位异常

发布时间:2026-08-30 22:26       

linux查看进程

在 Linux 系统中,进程是程序运行后的实例。无论是排查服务异常、定位 CPU 占用过高,还是查看某个程序是否正在运行,掌握“查看进程”的方法都非常重要。Linux 提供了很多命令来查看进程信息,下面介绍常用且实用的方式。

一、使用 ps 查看进程

ps 是 Linux 中最基础的进程查看命令,常用于查看当前系统中的进程快照。

查看所有进程

ps aux

常用字段含义:

字段 含义
USER 进程所属用户
PID 进程 ID
%CPU CPU 占用率
%MEM 内存占用率
VSZ 虚拟内存大小
RSS 物理内存大小
STAT 进程状态
COMMAND 启动进程的命令

按进程名查找

ps aux | grep nginx

例如想查看 MySQL 进程:

ps aux | grep mysql

为了避免把 grep 自身也显示出来,可以这样写:

ps aux | grep [n]ginx

二、使用 top 实时查看进程

top 可以动态查看系统进程和资源占用情况,适合排查 CPU、内存占用异常的问题。

top

进入 top 后,常用操作包括:

按键 功能
P 按 CPU 使用率排序
M 按内存使用率排序
N 按 PID 排序
q 退出

如果只想查看某个用户的进程,可以使用:

top -u root

三、使用 htop 更直观地查看进程

htoptop 的增强工具,界面更友好,支持鼠标操作、颜色显示和交互式管理进程。

htop

如果系统没有安装,可以根据发行版安装:

apt install htop

或:

yum install htop

htop 中,可以看到 CPU、内存、Swap 的实时使用情况,也可以快速选择进程并结束进程。

四、使用 pgrep 快速查找进程 PID

如果只需要查找某个进程 ID,可以使用 pgrep

pgrep nginx

查看更详细信息:

pgrep -a nginx

示例输出:

1234 nginx: master process /usr/sbin/nginx
1235 nginx: worker process

pgrepps | grep 更简洁,尤其适合脚本中使用。

五、使用 pidof 查看程序进程

pidof 可以根据程序名查看正在运行的进程 PID。

pidof sshd

如果程序正在运行,会返回对应的 PID;如果没有运行,则不会返回结果。

六、使用 pstree 查看进程树

有些进程之间存在父子关系,例如服务主进程会派生多个子进程。使用 pstree 可以更清晰地查看进程层级。

pstree

查看某个进程的关系树:

pstree -p 1234

也可以查看指定用户的进程树:

pstree -p root

七、查看进程的详细信息

每个进程在 /proc 目录下都有对应信息,目录名就是 PID。

例如查看 PID 为 1234 的进程:

ls /proc/1234

查看进程启动命令:

cat /proc/1234/cmdline

查看进程环境变量:

cat /proc/1234/environ

查看进程打开的文件:

ls -l /proc/1234/fd

八、查看进程打开的文件和网络连接

如果想知道某个进程打开了哪些文件,可以使用:

lsof -p 1234

查看某个程序打开的文件:

lsof -c nginx

查看端口对应的进程:

ss -lntp

或:

netstat -tunlp

例如查看 80 端口被哪个进程占用:

ss -lntp | grep :80

九、结束异常进程

查看进程后,如果发现异常进程,可以使用 kill 结束它。

kill 1234

如果进程无法正常退出,可以强制结束:

kill -9 1234

也可以根据进程名结束进程:

pkill nginx

或:

killall nginx

注意:结束进程前建议确认 PID 和进程用途,避免误杀系统关键服务。

十、常用查看进程命令汇总

命令 用途
ps aux 查看所有进程
top 实时查看进程和资源占用
htop 增强版实时进程查看工具
pgrep 根据名称查找 PID
pidof 查看程序 PID
pstree 查看进程树
lsof 查看进程打开的文件
ss -lntp 查看端口和进程关系
kill 结束指定进程

总结

Linux 查看进程的方法很多,日常最常用的是 pstoppgrephtop。如果只是查看进程快照,可以使用 ps aux;如果需要实时监控资源占用,可以使用 tophtop;如果只想快速查找某个程序的 PID,可以使用 pgreppidof。掌握这些命令后,就可以更高效地排查服务是否运行、定位资源占用异常以及管理异常进程。