上一篇
linux 如何查看进程
- Linux
- 2025-07-14
- 4067
nux查看进程常用ps、top、htop等命令,可按需选择以获取进程信息
Linux系统中,查看进程是日常系统管理和故障排查的重要操作,以下是几种常用的方法及其详细说明:
ps命令
ps命令是最基础且功能强大的进程查看工具,通过不同的参数组合可以获取丰富的进程信息。
参数组合 | 功能描述 | 示例输出字段 |
---|---|---|
ps |
显示当前终端下的进程 | PID、TTY、TIME、CMD |
ps -e |
显示所有进程(包括其他用户) | PID、USER、CMD |
ps -ef |
显示所有进程的完整信息(长格式) | UID、PID、PPID、C、STIME、TTY、TIME、CMD |
ps -aux |
以用户为主的格式显示所有进程 | USER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIME、COMMAND |
示例:
ps aux | grep python
:查找与Python相关的进程。ps -ef --sort=-%mem
:按内存使用率降序排列进程。
top命令
top命令提供动态更新的实时视图,适合监控进程资源占用情况,默认每3秒刷新一次,支持交互式操作。
快捷键 | 功能 |
---|---|
h |
显示帮助信息 |
q |
退出top |
k |
终止进程(需输入PID) |
r |
调整进程优先级(renice) |
P |
按CPU使用率排序 |
M |
按内存使用率排序 |
输出字段示例:
- Tasks:总进程数、运行中、休眠、停止、僵尸进程数。
- CPU:用户态(us)、系统态(sy)、空闲(id)等占比。
- Mem/Swap:总内存、已用、空闲、缓存等信息。
htop命令
htop是top的增强版,支持彩色高亮、垂直/水平滚动、树状视图(需安装)。
安装方式:
- Debian/Ubuntu:
sudo apt install htop
- CentOS/RHEL:
sudo yum install htop
特点:
- 鼠标支持:直接点击列头排序。
- 树状视图:按
F5
切换显示进程层级关系。 - 自定义列:按
F2
选择显示的字段。
pstree命令
pstree以树状结构展示进程间的父子关系,适合分析进程派生逻辑。
常用参数:
-p
:显示进程ID。-u
:显示用户名。-a
:附加命令行参数。
示例:
pstree -pu sshd
输出可能为:
sshd(1234)───sshd(1235)───bash(1236)
表示SSHD服务派生了子进程。
pgrep和pidof
用于根据进程名快速获取PID。
命令 | 功能 | 示例 |
---|---|---|
pgrep [选项] 进程名 |
查找进程ID,支持模糊匹配 | pgrep -f "python script.py" |
pidof [进程名] |
获取进程ID(部分系统不支持) | pidof nginx |
注意:pgrep -f
可匹配完整命令行,如查找包含特定参数的进程。
/proc文件系统
每个进程在/proc
目录下有一个同名子目录,存储进程详细信息。
常用文件:
/proc/[PID]/status
:查看进程状态、内存使用等。/proc/[PID]/cmdline
:查看启动命令及参数。/proc/[PID]/fd
:查看进程打开的文件描述符。
示例:
cat /proc/$(pgrep nginx)/status
可获取Nginx进程的内存、上下文切换次数等。
systemctl和service(针对系统服务)
用于查看系统服务的运行状态及对应的主进程。
命令 | 适用场景 | 示例 |
---|---|---|
systemctl status [服务名] |
systemd系统 | systemctl status nginx |
service [服务名] status |
老版本init系统 | service ssh status |
输出示例:
● nginx.service A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-07-14 10:00:00 CST; 1h ago
Main PID: 1234 (nginx)
Tasks: 2 (limit: 4915)
Memory: 10.5M
CGroup: /system.slice/nginx.service
├─1234 /usr/sbin/nginx -g daemon on; master_process on
└─2345 /usr/sbin/nginx -g daemon on; worker process
FAQs
如何终止一个进程?
可以使用kill [PID]
或pkill [进程名]
。
kill 1234 # 终止PID为1234的进程 pkill -f "python" # 终止所有包含"python"的命令行进程
若进程不响应,可使用kill -9 [PID]
强制终止。
如何查看某个进程的详细资源占用?
使用pidstat
命令:
pidstat -p 1234 # 监控PID为1234的进程的CPU、内存、IO等
或者通过top -p [PID]
或htop
交互式查看