当前位置: 首页 > news >正文

Linux ps -ef 命令解析

ps 是 Linux 系统中用于查看进程状态的标准命令,-ef 是其参数组合,用于输出系统范围内所有进程的完整信息。以下是对该参数的详细解析: 

1. 核心参数含义

  • -e
    表示显示所有进程(包括系统进程和用户进程),相当于 -A 参数。该选项会列出系统中当前运行的所有进程,而不限于当前用户的会话。
  • -f
    表示以完整格式(Full Format)输出进程信息。这比默认输出提供更详细的字段,包括进程的用户、父子关系、启动时间等。

2. 输出格式说明

当执行 ps -ef 时,输出通常包含以下列(字段):

  • UID:进程所有者的用户名。
  • PID:进程的唯一标识符(Process ID)。
  • PPID:父进程的 PID(Parent Process ID),显示进程的创建来源。
  • C:CPU 利用率(百分比),表示进程的 CPU 使用情况。
  • STIME进程的启动时间或日期
  • TTY:与进程关联的终端设备(例如 tty1 表示本地终端,? 表示无关联终端)。
  • TIME进程已使用的累计 CPU 时间(格式为 HH:MM:SS)。
  • CMD:启动进程的命令行或可执行文件的名称。

3. 使用场景示例

3.1 基本用法:直接运行 ps -ef 可快速查看所有进程的详情

UID        PID  PPID  C STIME TTY          TIME CMD
root       540     1  0  2024 ?        00:02:21 /sbin/auditd
ntp       3690     1  0  2024 ?        00:00:26 /usr/sbin/ntpd -u ntp:ntp -g
root      2753  2716 17  2024 ?        42-07:05:06 /usr/local/jdk-21.0.4/bin/java -server -Xms4g -Xmx4g -XX:+UseG1GC -XX:G1HeapRegionSize

 注意:数值 42-07:05:06 表示该进程自启动以来累计消耗的CPU时间

  • 非进程存活时长:此时间仅统计进程 实际占用 CPU 资源的时间,而非进程从启动至今的总运行时长(后者由 STIME 列表示进程的启动时间)。
  • 累积计算:若进程多次运行,该值会累积历史 CPU 占用时间。
  • 格式规则:当累计时间超过 24 小时,输出会自动转换为 天数-小时:分钟:秒 的格式(即 42-07:05:06 代表 42 天 7 小时 5 分钟 6 秒)。

3.2 进阶使用:若需进一步筛选,可结合其他参数:

  • ps  -u  <username>   #显示指定用户的进程。
  • ps -eLf    #显示所有线程(-L 扩展)。
  • ps -ef  |  grep -E 'nginx|mysql'    # 同时匹配多个服务名,支持正则表达式
  • ps -ef  |  grep '[s]shd'            # 用字符集语法屏蔽 grep 进程自身
  • ps  -ef  --sort=-%cpu | head -10   # CPU使用率倒序(前10)
  • ps  -ef  --sort=+%mem | head -10   # 内存占用量正序 ,-为降序,+为升序,支持 %cpu, %mem, start_time 等字段。
  • ps -e --forest  |  grep  nginx   # 直接生成指定进程的树状图
  • ps -eo pid,user,cmd,etime # 显示进程PID、用户、命令、已运行时长 ps -e -o
  • ppid=,comm= --no-header # 仅输出父进程ID和命令名(无标题行)
  • watch "ps -ef --sort=-%cpu | grep -v 'ps -ef' | head -n 15"   #实时筛选高负载进程
  • ps -ef -u www-data | wc -l     #统计特定用户进程数

PS: 僵尸进程筛选

筛选僵尸进程状态

  • ps aux | awk '{if ($8=="Z" || $8=="Z+") print $0}'

定制化输出

  • ps -e -o pid,ppid,stat,cmd | grep 'Z'

僵尸进程的影响与处理原则

  • 影响
    僵尸进程不消耗 CPU/内存,但占用系统进程表项,过多时可能阻碍新进程创建。
  • 处理优先级
    优先检查父进程(PPID)是否异常。若父进程为 init(PID=1),系统通常会定期回收,无需手动干预。
  • 预防措施
    检查程序代码中是否缺失对子进程的 wait() 调用,确保正确回收资源。

4. 注意事项

  • 兼容性-ef 参数在大多数 Linux 发行版中通用(如 Ubuntu、CentOS),但部分 BSD 变体可能使用不同语法(如 ps aux)。
  • 性能影响ps -ef 通常无显著系统开销,但在进程数极高时,可配合 grep 过滤输出(例如 ps -ef | grep nginx)。
  • 其他常用参数可补充使用(如 -o 自定义输出字段、-p 指定 PID),但 -ef 提供了便捷的默认完整视图。
http://www.dtcms.com/a/305872.html

相关文章:

  • 三十二、【Linux网站服务器】搭建httpd服务器演示虚拟主机配置、网页重定向功能
  • STM32学习记录--Day3
  • ubuntu编译opendds
  • STM32CubeMX 生成时钟获取函数的分析
  • OmniParser:提升工作效率的视觉界面解析工具
  • react+ant design怎么样式穿透-tooltip怎么去掉箭头
  • 地下停车场照明节能:技术方案与价值重构
  • day7 替换数字那道题需要多写几次
  • 容器与虚拟机的本质差异:从资源隔离到网络存储机制
  • InfluxDB 3 数据库命名与创建全攻略:规范、限制与实战指南
  • Linux 进程管理与计划任务详解
  • 在 CentOS 系统上安装 Docker
  • ComfyUI自定义图片导出路径
  • SpringBoot 2.7.18 升级 3.4.6
  • PHP语法高级篇(七):MySQL数据库
  • 具身智能 自动驾驶相关岗位的技术栈与能力地图
  • 微信小程序中实现页面跳转的方法
  • 爬虫验证码处理:ddddocr 的详细使用(通用验证码识别OCR pypi版)
  • 第2章 cmd命令基础:常用基础命令(2)
  • 数据驱动的自动驾驶虚拟测试方法
  • 【同济大学】双速率自动驾驶架构LeAD:端到端+LLM,CARLA实测93%路线完成率,性能SOTA!
  • 深入浅出设计模式——创建型模式之原型模式 Prototype
  • 【MySQL 数据库】MySQL索引特性(二)页目录(B和B+树)(非)聚簇索引 索引操作
  • 李宏毅2025《机器学习》-第九讲:大型语言模型评测的困境与“古德哈特定律”**
  • java面向对象高级02——单例类(设计模式)
  • 数据分析师进阶——95页零售相关数据分析【附全文阅读】
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博评论IP地图可视化分析实现
  • 语言模型的评估指标整理
  • Python设计模式详解:策略模式(Strategy Pattern)实战指南
  • LRU (Least Recently Used) 缓存实现及原理讲解