ps命令


Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

Linux ps 命令

语法

ps [options][--help]

常用参数

-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

au(x) 输出格式 : USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
	STAT: 该行程的状态:
        D: 无法中断的休眠状态 (通常 IO 的进程)
        R: 正在执行中
        S: 静止状态
        T: 暂停执行
        Z: 不存在但暂时无法消除
        W: 没有足够的记忆体分页可分配
        <: 高优先序的行程
        N: 低优先序的行程
        L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

应用举例

ps -l只能查看自己bash的进程

work@authority-api-v1-6944b5848b-6x5d2:~$ ps -l
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1000    1519       0  0  80   0 -  5283 wait   pts/0    00:00:00 bash
0 R  1000    1536    1519  0  80   0 -  7486 -      pts/0    00:00:00 ps
work@authority-api-v1-6944b5848b-6x5d2:~$

ps aux所有系统运行的进程,按照PID的顺序来排序显示

work@authority-api-v1-6944b5848b-6x5d2:~$ ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
work           1  0.0  0.0   4280    64 ?        Ss   Feb15   0:00 /bin/sh -c  PROJECT_DIR=/home/work/www/authority-api $PROJECT_DIR/bin/bootstrap
work           6  0.0  0.0  19728   992 ?        S    Feb15   0:00 /bin/bash /home/work/www/authority-api/bin/bootstrap run
work          16  0.0  0.0  19880  1152 ?        S    Feb15   0:00 /bin/bash /home/work/www/authority-api/bin/..//lib/authority-api.jar run
work          47  0.8  0.3 7494192 686500 ?      Sl   Feb15  56:13 /usr/local/openjdk-8/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -
work        1519  0.0  0.0  21132  4696 pts/0    Ss   00:56   0:00 bash
work        1544  0.0  0.0  38384  3072 pts/0    R+   01:35   0:00 ps aux

查找指定进程

work@authority-api-v1-6944b5848b-6x5d2:~$ ps -ef | grep java| grep auth
work          47      16  0 Feb15 ?        00:56:13 /usr/local/openjdk-8/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -DLOG_PATH=/mnt/logs/authority-api -server -XX:MaxRAMPercentage=30.0 -XX:InitialRAMPercentage=30.0 -XX:MinRAMPercentage=30.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/logs/authority-api/jvm -XX:ErrorFile=/mnt/logs/authority-api/jvm/jvm_err.log -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=50M -verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -Xloggc:/mnt/logs/authority-api/jvm/gc.log -javaagent:/usr/local/jmx-exporter/jmx_prometheus_javaagent-0.14.0.jar=9990:/usr/local/jmx-exporter/prometheus-jmx-config.yaml -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -jar /home/work/www/authority-api/lib/authority-api.jar --server.address=0.0.0.0 --spring.config.location=/home/work/www/authority-api/conf/ --spring.profiles.active=testing --logging.config=/home/work/www/authority-api/conf/log4j2.yml

显示指定用户信息

work@authority-api-v1-6944b5848b-6x5d2:~$ ps -u work
    PID TTY          TIME CMD
      1 ?        00:00:00 sh
      6 ?        00:00:00 bootstrap
     16 ?        00:00:00 authority-api.j
     47 ?        00:56:13 java
   1519 pts/0    00:00:00 bash
   1549 pts/0    00:00:00 ps
work@authority-api-v1-6944b5848b-6x5d2:~$

显示所有进程信息,连同命令行

work@authority-api-v1-6944b5848b-6x5d2:~$ ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
work           1       0  0 Feb15 ?        00:00:00 /bin/sh -c  PROJECT_DIR=/home/work/www/authority-api $PROJECT_DIR/bin/bootstrap run
work           6       1  0 Feb15 ?        00:00:00 /bin/bash /home/work/www/authority-api/bin/bootstrap run
work          16       6  0 Feb15 ?        00:00:00 /bin/bash /home/work/www/authority-api/bin/..//lib/authority-api.jar run
work          47      16  0 Feb15 ?        00:56:13 /usr/local/openjdk-8/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -DLOG_PATH=/mnt/
work        1519       0  0 00:56 pts/0    00:00:00 bash
work        1550    1519  0 01:40 pts/0    00:00:00 ps -ef
work@authority-api-v1-6944b5848b-6x5d2:~$

根据 CPU 使用来升序排序


work@authority-api-v1-6944b5848b-6x5d2:~$ ps aux --sort -pcpu
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
work          47  0.8  0.3 7494192 686500 ?      Sl   Feb15  56:14 /usr/local/openjdk-8/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -
work           1  0.0  0.0   4280    64 ?        Ss   Feb15   0:00 /bin/sh -c  PROJECT_DIR=/home/work/www/authority-api $PROJECT_DIR/bin/bootstrap
work           6  0.0  0.0  19728   992 ?        S    Feb15   0:00 /bin/bash /home/work/www/authority-api/bin/bootstrap run
work          16  0.0  0.0  19880  1152 ?        S    Feb15   0:00 /bin/bash /home/work/www/authority-api/bin/..//lib/authority-api.jar run
work        1519  0.0  0.0  21132  4812 pts/0    Ss   00:56   0:00 bash
work        1555  0.0  0.0  38384  2984 pts/0    R+   01:45   0:00 ps aux --sort -pcpu
work@authority-api-v1-6944b5848b-6x5d2:~$

根据 内存使用来升序排序

work@authority-api-v1-6944b5848b-6x5d2:~$ ps -aux --sort -pmem
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
work          47  0.8  0.3 7494192 686500 ?      Sl   Feb15  56:14 /usr/local/openjdk-8/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -
work        1519  0.0  0.0  21132  4812 pts/0    Ss   00:56   0:00 bash
work        1558  0.0  0.0  38384  3100 pts/0    R+   01:46   0:00 ps -aux --sort -pmem
work          16  0.0  0.0  19880  1152 ?        S    Feb15   0:00 /bin/bash /home/work/www/authority-api/bin/..//lib/authority-api.jar run
work           6  0.0  0.0  19728   992 ?        S    Feb15   0:00 /bin/bash /home/work/www/authority-api/bin/bootstrap run
work           1  0.0  0.0   4280    64 ?        Ss   Feb15   0:00 /bin/sh -c  PROJECT_DIR=/home/work/www/authority-api $PROJECT_DIR/bin/bootstrap
work@authority-api-v1-6944b5848b-6x5d2:~$

我们也可以将它们合并到一个命令,并通过管道显示前10个结果:


work@authority-api-v1-6944b5848b-6x5d2:~$ ps aux --sort -pcpu,+pmem | head -n 3
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
work          47  0.8  0.3 7494192 686500 ?      Sl   Feb15  56:14 /usr/local/openjdk-8/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -DLOG_PATH=/mnt/logs/authority-api -server -XX:MaxRAMPercentage=30.0 -XX:InitialRAMPercentage=30.0 -XX:MinRAMPercentage=30.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/logs/authority-api/jvm -XX:ErrorFile=/mnt/logs/authority-api/jvm/jvm_err.log -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=50M -verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -Xloggc:/mnt/logs/authority-api/jvm/gc.log -javaagent:/usr/local/jmx-exporter/jmx_prometheus_javaagent-0.14.0.jar=9990:/usr/local/jmx-exporter/prometheus-jmx-config.yaml -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -jar /home/work/www/authority-api/lib/authority-api.jar --server.address=0.0.0.0 --spring.config.location=/home/work/www/authority-api/conf/ --spring.profiles.active=testing --logging.config=/home/work/www/authority-api/conf/log4j2.yml
work           1  0.0  0.0   4280    64 ?        Ss   Feb15   0:00 /bin/sh -c  PROJECT_DIR=/home/work/www/authority-api $PROJECT_DIR/bin/bootstrap run
work@authority-api-v1-6944b5848b-6x5d2:~$

引用

10个重要的Linux ps命令实战


文章作者: WangQingLei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WangQingLei !
 上一篇
Eclipse Memory Analysis使用 Eclipse Memory Analysis使用
Eclipse Memory Analyzer是一个快速而功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。使用内存分析器分析数亿个对象的生产性堆转储,快速计算保留的对象大小,查看谁阻止垃圾收集器收集对象,运行报告以自动提取泄
2022-02-21
下一篇 
top命令 top命令
top 命令用于实时显示系统资源使用情况。它可以显示系统摘要信息,以及内核当前正在管理的进程或线程的列表。 top 命令可以实时动态地查看系统的整体运行情况,是一个非常实用的系统性能和运行信息的监测工具。通过 top 命令所提供的互动
2022-02-20
  目录