Linux系统中,查看进程是日常管理和故障排查的重要任务,以下是几种常用的方法及其详细说明:
ps命令
ps命令是最基础且功能强大的进程查看工具,通过不同的参数组合可以获取丰富的进程信息。
命令 | 作用 |
---|---|
ps |
显示当前终端下的进程(默认仅显示当前用户进程)。 |
ps -e 或 -A |
显示所有进程(包括其他用户的进程)。 |
ps -ef |
以完整格式显示所有进程,包含父进程ID(PPID)、启动时间、CPU/内存使用等。 |
ps -aux |
按用户格式显示所有进程,包含CPU和内存使用率、进程状态等。 |
ps -x |
显示无控制终端的进程(如后台进程)。 |
示例:
ps -ef | grep my_process # 过滤特定进程名
top命令
top命令提供动态更新的实时视图,适合监控资源占用情况。
- 功能特点:
- 默认每3秒刷新一次,显示CPU、内存、交换空间的使用情况。
- 支持交互式操作(如排序、终止进程)。
- 按
q
退出,按h
查看帮助。
输出字段说明:
| 字段 | 含义 |
|—————|——————————————–|
| PID
| 进程ID |
| USER
| 进程所有者用户名 |
| PR
/ NI
| 优先级和Nice值 |
| VIRT
/ RES
| 虚拟内存和常驻内存大小(单位KB) |
| SHR
| 共享内存大小 |
| %CPU
/ %MEM
| CPU和内存使用率 |
| TIME+
| 进程累计运行时间 |
| COMMAND
| 进程名称 |
快捷键:
k
:终止进程(需输入PID)。r
:调整进程优先级。P
/M
:按CPU或内存排序。
htop命令
htop是top的增强版,提供更友好的界面和交互功能(需手动安装)。
- 优势:
- 彩色高亮显示,支持垂直/水平滚动。
- 树状视图(按
F5
切换),直观展示进程层级关系。 - 直接用箭头键选择进程,按
F9
删除进程。
安装方式:
# Debian/Ubuntu 系 sudo apt-get install htop # Red Hat/CentOS 系 sudo yum install htop
pstree命令
pstree以树状结构展示进程间的父子关系,适合分析进程派生逻辑。
- 常用参数:
-p
:显示进程ID。-u
:显示用户名。-a
:附加命令行参数。
示例:
pstree -pu # 显示用户、PID及完整命令
pgrep与pkill命令
- pgrep:根据进程名查找PID。
pgrep -f "python" # 模糊匹配进程名或参数
- pkill:终止符合条件的进程。
pkill -f "my_process" # 强制终止所有相关进程
/proc文件系统
Linux的/proc目录存储了进程的详细信息,可直接查看。
- 示例:
cat /proc/$$/status # 查看当前Shell进程的状态 ls /proc/<PID>/fd # 查看进程打开的文件描述符
systemctl与service命令(针对系统服务)
用于查看系统服务的运行状态。
命令 | 作用 |
---|---|
systemctl status <service> |
查看systemd服务的详细状态 |
service <service> status |
查看老式init系统的服务状态 |
示例:
systemctl status nginx # 查看Nginx服务状态
FAQs
如何终止一个进程?
- 使用
kill
命令(需提供PID):kill <PID> # 默认发送SIGTERM信号 kill -9 <PID> # 强制终止(SIGKILL)
- 或通过
pkill
直接匹配进程名:pkill -f "process_name"
如何查看某个进程的详细资源占用(如IO、网络)?
- 使用
pidstat
命令监控特定进程:pidstat -p <PID> # 显示CPU、内存、IO等指标
- 或结合
iostat
、netstat
分析系统级资源
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/60214.html