上一篇                     
               
			  linux 如何查看进程
- Linux
- 2025-07-14
- 4338
 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 processFAQs
如何终止一个进程?
可以使用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交互式查看
 
  
			 
			 
			 
			