上一篇
linux 如何看进程
- Linux
- 2025-07-14
- 4289
Linux中,查看进程可使用ps、top、htop等命令,ps aux显示所有进程详细信息,top实时查看进程资源占用情况
Linux系统中,查看进程是日常管理和故障排查的重要操作,以下是几种常用的方法及其详细说明:
ps命令:基础与灵活的进程查看工具
ps
命令是最基础的进程查看工具,通过不同的参数组合可以获取丰富的进程信息。
常用参数 | 功能描述 | 示例命令 |
---|---|---|
ps |
显示当前终端下的进程 | ps |
-e |
显示所有进程(包括其他用户) | ps -e |
-f |
显示完整格式(包含父进程ID) | ps -ef |
-u |
按用户筛选进程 | ps -u root |
-aux |
显示所有进程的详细信息(用户、CPU、内存等) | ps -aux |
字段解析(以ps -aux
为例):
- USER: 进程所有者
- PID: 进程ID
- %CPU: CPU占用率
- %MEM: 内存占用率
- VSZ: 虚拟内存大小
- RSS: 物理内存占用
- TTY: 终端类型(表示无终端)
- STAT: 进程状态(如
R
运行、S
睡眠、Z
僵尸) - START: 启动时间
- TIME: 累计CPU时间
- COMMAND: 启动命令
top命令:实时动态监控
top
命令以动态更新的方式显示进程资源占用情况,默认每3秒刷新一次。
关键信息:
- Tasks: 总进程数、运行/休眠/停止/僵尸进程数
- CPU使用: 用户态(
us
)、系统态(sy
)、空闲(id
)等占比 - 内存和交换空间: 总内存、已用/空闲内存及交换区
- 进程列表: PID、用户、CPU%、内存%、状态、启动时间、命令
交互操作:
q
: 退出h
: 显示帮助k
: 终止进程(需输入PID)r
: 调整进程优先级(RENICE
)P
: 按CPU或内存排序
htop与btop:增强版可视化工具
htop
和btop
是top
的升级版本,提供更友好的界面和交互功能。
特性 | htop | btop |
---|---|---|
彩色高亮 | 支持 | 支持 |
垂直/水平滚动 | 支持 | 支持 |
树状视图 | 支持 | 部分支持 |
自定义列 | 支持 | 支持 |
进程搜索 | 支持 | 支持 |
安装示例:
# Debian/Ubuntu sudo apt install htop # CentOS/RHEL sudo yum install htop
pstree:进程树状结构
pstree
以树形结构展示进程间的父子关系,适合分析进程派生逻辑。
常用参数:
-p
: 显示进程ID-u
: 显示用户名-a
: 显示完整命令行
示例输出:
init─┬─apache2 ├─sshd └─{nginx} ├─www-data └─root
pgrep与pkill:按名称过滤进程
- pgrep: 根据进程名获取PID
pgrep -f "python" # 模糊匹配命令行包含python的进程
- pkill: 根据名称终止进程
pkill -9 my_process # 强制终止指定进程
/proc文件系统:深入进程细节
每个进程在/proc
目录下有一个同名子目录(如/proc/1234
),包含以下关键文件:
status
: 进程状态(如内存、CPU使用)cmdline
: 启动命令行参数fd/
: 文件描述符列表maps
: 内存映射信息
示例:
cat /proc/$(pgrep nginx)/status # 查看nginx进程状态
systemctl与service:管理系统服务
针对系统服务(如nginx
、ssh
),可通过以下命令查看状态:
systemctl status nginx # systemd系统 service ssh status # 老式init系统
FAQs
如何终止一个顽固的进程?
若普通kill
无效,可尝试:
kill -9 PID # 强制终止
或使用pkill
:
pkill -9 -f "process_name"
ps aux
和ps -ef
有什么区别?
ps aux
:以用户为中心,显示所有用户的进程,包含终端信息(TTY
)。ps -ef
:以完整格式显示,包含父进程ID(PPID
)和启动时间