0

0

如何在Linux中查看运行进程 Linux ps aux命令详解

P粉602998670

P粉602998670

发布时间:2025-08-30 12:42:02

|

717人浏览过

|

来源于php中文网

原创

ps aux命令用于查看Linux系统中所有进程的详细信息,包括用户、PID、CPU和内存占用、进程状态等,结合grep、sort、less等命令可高效筛选和分析进程,帮助识别高资源占用或僵尸进程,并通过kill命令终止异常进程。

如何在linux中查看运行进程 linux ps aux命令详解

在Linux系统里,想了解当前有哪些程序在跑,它们占用了多少资源,或者哪个进程出了问题,最直接也是最常用的方法就是使用

ps aux
命令。它能给你一个系统进程的快照,让你对系统内部的活动一目了然。

ps aux
这个命令,说白了,就是
ps
(process status)命令加上几个参数的组合。

  • a
    :显示所有用户的进程,不仅仅是你自己的。这很重要,因为很多系统服务都是以其他用户身份运行的。
  • u
    :以用户为导向的格式显示进程信息。这意味着你会看到用户、CPU使用率、内存使用率等更详细的信息,而不是仅仅是进程ID。
  • x
    :显示没有控制终端的进程。这类进程通常是系统后台服务,如果你不加
    x
    ,很多重要的后台服务你可能就看不到了。

所以,当你敲下

ps aux
并回车时,你看到的就是一个包含系统上所有(或者说绝大部分)正在运行的进程的详细列表。我个人觉得,这就像是给你的Linux系统拍了一张“全家福”,每个成员的身份、状态、消耗都写得清清楚楚。

ps aux
命令的输出字段都代表什么?

初次看到

ps aux
的输出,密密麻麻的字段可能会让人有点懵。但别担心,理解它们其实不难,而且对系统诊断非常有帮助。我来简单拆解一下那些核心字段:

  • USER:进程的所有者。通常是运行该程序的用户,或者像
    root
    daemon
    www-data
    这样的系统用户。这个字段能帮你快速判断一个进程是谁启动的。
  • PID:进程ID。每个运行的进程都有一个唯一的数字ID。这是你对进程进行操作(比如终止它)时最关键的标识符。
  • %CPU:进程占用的CPU百分比。这个值高,意味着这个进程正在大量消耗CPU资源。如果你发现某个进程的%CPU持续很高,那可能就是它导致系统卡顿的元凶。
  • %MEM:进程占用的物理内存百分比。和CPU类似,高百分比可能意味着内存泄漏或者程序设计不合理。
  • VSZ (Virtual Size):进程占用的虚拟内存大小,以KB为单位。这包括了程序代码、数据、共享库等等。它代表了进程理论上可能使用的内存量。
  • RSS (Resident Set Size):进程实际占用的物理内存大小,以KB为单位。这个值通常比VSZ小,因为它只计算了进程当前在RAM中的部分。我个人更关注RSS,因为它更能反映进程对实际物理内存的压力。
  • TTY:控制终端。如果进程是从终端启动的,这里会显示对应的终端名(如
    pts/0
    )。如果是后台服务,通常会显示
    ?
  • STAT:进程状态。这是一个非常重要的字段,用一个或几个字母表示进程的当前状态,比如:
    • R
      (Running): 正在运行或在运行队列中等待。
    • S
      (Sleeping): 正在休眠,等待某个事件发生(如I/O完成)。
    • D
      (Uninterruptible Sleep): 不可中断的休眠,通常在等待I/O,此时不能被信号中断。遇到这种进程,通常意味着I/O系统出了问题。
    • Z
      (Zombie): 僵尸进程。进程已经终止,但其父进程还没有回收它的资源。这通常不是大问题,但大量僵尸进程可能预示着父进程有问题。
    • T
      (Stopped): 进程被停止(例如,通过
      Ctrl+Z
      )。
    • S
      :会话领导者。
    • l
      :多线程进程。
    • +
      :前台进程组。
  • START:进程启动时间。
  • TIME:进程累计占用的CPU时间。这个时间是CPU时间,不是墙钟时间,所以即使一个进程运行了很久,如果它大部分时间都在休眠,这个值也不会很高。
  • COMMAND:启动进程的命令或程序路径。这是你最直观判断进程用途的地方。

理解这些字段,你就能从海量的进程信息中,快速定位到你关心的点,比如哪个程序在吃CPU,哪个服务没启动,或者有没有异常的进程在运行。

如何结合其他命令更有效地分析进程?

ps aux
虽然强大,但单独使用时,面对大量的输出,信息筛选会是个挑战。这时候,Linux的管道(
|
)和一些文本处理工具就显得尤为重要了。我个人在日常工作中,几乎不会单独使用
ps aux
,它总是和其他命令联手出击。

  • 查找特定进程:结合

    grep
    这是最常用的组合。如果你想查找某个特定的服务或应用程序,比如Apache或Nginx,直接用
    grep
    过滤:

    ps aux | grep nginx

    这里有个小技巧,

    grep
    本身也会作为一个进程显示出来,所以你可能会看到两行,一行是
    nginx
    的,一行是
    grep nginx
    的。如果你想精确排除
    grep
    自身,可以这样:

    ps aux | grep [n]ginx

    或者更通用的:

    Runway
    Runway

    Runway是一个AI创意工具平台,它提供了一系列强大的功能,旨在帮助用户在视觉内容创作、设计和开发过程中提高效率和创新能力。

    下载
    ps aux | grep 'your_process_name' | grep -v grep

    这样能帮你快速定位到目标进程的PID。

  • 分页查看:结合

    less
    more
    当进程列表太长,一屏显示不完时,
    less
    more
    就派上用场了:

    ps aux | less

    这样你可以上下滚动,慢慢查看。我通常更喜欢

    less
    ,因为它支持向前翻页。

  • 按资源占用排序:结合

    sort
    想知道哪个进程最耗CPU或内存?
    sort
    命令可以帮你:

    ps aux --sort=-%cpu | head -n 10

    这会显示按CPU使用率降序排列的前10个进程(注意

    --sort
    ps
    的参数,不是
    sort
    命令的)。如果你想用
    sort
    命令对
    ps aux
    的输出进行排序,需要知道列的索引,比如按
    %MEM
    排序:

    ps aux | sort -nrk 4 | head -n 10

    这里

    -n
    表示按数值排序,
    -r
    表示反向(降序),
    -k 4
    表示按第四列(%MEM)排序。这有点像玩Excel表格,找到合适的列,然后排序。

  • 动态监控:了解

    top
    htop
    虽然这篇文章主要讲
    ps aux
    ,但我不得不提一下
    top
    htop
    ps aux
    给的是一个快照,而
    top
    htop
    则能提供实时的、动态的进程信息,并且支持交互式操作。如果你需要持续监控系统资源,它们是更好的选择。
    ps aux
    更适合做一次性的诊断或脚本化处理。

通过这些组合,

ps aux
的效能会被大大提升,你就能更高效地进行系统监控和故障排查。

遇到僵尸进程或异常进程该如何处理?

在系统维护中,查看进程的目的往往是为了发现并解决问题。僵尸进程(Zombie Process)和异常高占用资源的进程是两种常见的“麻烦制造者”。

  • 识别和处理僵尸进程 (STAT Z) 僵尸进程,顾名思义,就是已经“死亡”但尸体还在的进程。它们在

    STAT
    列会显示为
    Z
    。一个进程在完成其任务后,会向其父进程发送一个退出状态,然后等待父进程来“收尸”(调用
    wait()
    waitpid()
    函数)。如果父进程没有及时回收,那么这个子进程就会变成僵尸进程。

    ps aux | grep Z

    僵尸进程本身并不占用CPU或内存资源(除了一个PID条目),所以少量僵尸进程通常无害。但如果出现大量僵尸进程,那很可能意味着其父进程存在bug,没有正确处理子进程的退出。 处理方法: 僵尸进程无法直接被

    kill
    。因为它们已经死了,只是信息还在。你需要做的是终止它们的父进程。你可以通过
    pstree -p
    或者
    ps -o ppid,pid,command | grep 
    来找到僵尸进程的父进程(PPID),然后
    kill
    掉父进程。父进程终止后,这些僵尸进程通常会被
    init
    进程(PID 1)收养并清理。如果父进程是关键服务,你需要谨慎操作,可能需要重启服务甚至整个系统。

  • 识别和处理异常高占用资源的进程 这类进程通常表现为

    %CPU
    %MEM
    持续过高。

    ps aux --sort=-%cpu | head -n 5 # 查看CPU占用最高的几个进程
    ps aux --sort=-%mem | head -n 5 # 查看内存占用最高的几个进程

    一旦你通过

    ps aux
    找到了这些“捣乱”的进程,下一步就是处理它们。 处理方法:

    1. 温和终止:
      kill 
      这是最推荐的方式。
      kill
      命令默认发送
      SIGTERM
      信号(信号15),它会请求进程优雅地退出,给进程时间来保存数据、清理资源。
      kill 12345 # 替换为实际的PID

      等待几秒,再用

      ps aux | grep 12345
      确认进程是否已经退出。

    2. 强制终止:
      kill -9 
      如果
      kill 
      无效,进程仍然顽固地

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

229

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

498

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

498

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

227

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

333

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3508

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

15

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号