在Linux系统中,监控进程是系统管理和故障排查的核心任务之一,通过命令行工具可以实时或历史地查看进程状态、资源占用及行为模式,以下是常用的监控进程命令及其详细用法,帮助用户高效掌握系统进程动态。

ps命令:静态进程快照ps命令用于查看当前运行的进程,提供进程的基本信息,常用选项包括:
ps -ef:显示所有进程的详细信息(UID、PID、PPID、CSTIME、TTY、TIME、CMD),其中-e表示所有进程,-f表示完整格式。ps aux:以用户为中心显示进程,包含CPU、内存占用率(%CPU、%MEM)等字段,a表示所有终端的进程,u显示用户格式,x包含无终端的进程。ps -eo pid,ppid,cmd:自定义输出列,仅显示进程ID、父进程ID和命令行。
top命令:动态实时监控top命令以交互式界面实时刷新进程列表,默认按CPU占用降序排列,关键功能包括:
- 排序:按
P(CPU)、M(内存)、N(PID)排序; - 操作:按
k终止进程,r重新设置进程优先级; - 显示项:通过
f键选择显示字段(如NI、RES、SHR等),d调整刷新间隔。
htop命令:增强版tophtop是top的替代品,支持彩色显示、树形进程结构(F5切换)、鼠标操作,更直观展示父子进程关系,安装后直接运行,无需复杂参数。
pgrep命令:按条件查找进程IDpgrep通过进程属性筛选进程,返回匹配的PID。

pgrep -u username:查找指定用户的进程;pgrep -f "nginx":查找命令行包含”nginx”的进程。
pidstat命令:进程级性能统计pidstat是sysstat工具包的一部分,用于监控进程的CPU、内存、I/O等资源使用情况,示例:
pidstat -u 1 5:每秒更新一次CPU使用率,共5次;pidstat -r -p 1234:监控PID为1234的内存使用情况。
lsof命令:列出打开文件的进程lsof通过文件句柄关联进程,适用于排查文件占用问题:
lsof -i :80:查看占用80端口的进程;lsof -p 1234:显示PID为1234的进程打开的所有文件。
glances命令:综合系统监控glances是一款跨平台工具,以仪表盘形式展示CPU、内存、磁盘、网络及进程信息,支持自动模式(-b)或日志模式(-t)。
/proc文件系统:直接读取进程数据
Linux内核通过/proc伪文件系统暴露进程信息,

cat /proc/1234/status:查看进程状态、内存限制等;cat /proc/1234/cmdline:获取进程启动命令。
进程监控常用命令对比
| 命令 | 主要用途 | 特点 |
|——-|——————————|————————————|
| ps | 静态查看进程快照 | 简单,适合一次性查看 |
| top | 实时动态监控 | 交互式,支持排序和操作 |
| htop | 增强版实时监控 | 彩色、树形结构,用户体验更佳 |
| pgrep | 按条件筛选PID | 简化脚本中的进程查找 |
| pidstat| 进程级性能统计 | 专注资源使用,适合深度分析 |
相关问答FAQs
Q1: 如何监控特定进程的CPU和内存使用情况?
A1: 可以使用pidstat命令,例如pidstat -u -r -p <PID> 1每秒更新一次指定进程的CPU和内存使用情况,若需持续监控,可结合while循环或日志记录,如while true; do pidstat -u -r -p 1234; sleep 1; done。
Q2: 如何找出占用内存最高的前5个进程?
A2: 使用ps命令结合排序和head,例如ps aux --sort=-%mem | head -6(-6行),或通过top按M键排序后手动查看前5行。htop则可直接按内存占用排序并直观展示。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/460722.html<
