ps 命令 --- 摘自

用途

显示进程的当前状态。该文档描述了标准 AIX ps 命令,以及 ps 的 System V 版本命令。

语法

X/Open 标准

ps [ -A ] [ -N ] [ -a ] [ -d ] [ -e ] [ -f ] [ -k ] [ -l ] [ -F format] [ -o Format ] [ -c Clist ] [ -G Glist ] [ -g Glist ] [ -m ] [ -n NameList ] [ -p Plist ] [ -t Tlist ] [ -U Ulist ] [ -u Ulist ]

Berkeley 标准

ps [ a ] [ c ] [ e ] [ ew ] [ eww ] [ g ] [ n ] [ U ] [ w ] [ x ] [ l | s | u | v ] [ t Tty ] [ ProcessNumber ]

描述

ps 命令将活动进程的当前状态和(如果指定了 -m 标志)有关的内核线程写到标准输出中。注意当 -m 标志使用额外的行显示与进程相关的线程时,您必须使用 -o 标志连同 THREAD 字段说明符来显示额外的与线程相关的列。

不使用任何标志时,ps 命令显示关于当前工作站的信息。 -f、-o、l、-l、s、u 和 v 标志仅确定为该进程提供了多少信息;它们不确定列出哪些进程。 l、s、u 和 v 标志互斥。

使用 -o 标志时,ps 命令检查内存或调页区域并确定进程创建时的命令名和参数是什么。如果 ps 命令不能找到该信息,存储在内核中的命令名显示在方括号中。

COLUMNS 环境变量覆盖系统选定的水平屏幕大小。

接受参数列表(-o、-G、-g、-p、-t、-U 和 -u 标志)的命令行标志的限制为 128 项。例如, -u Ulist 标志能指定不超过 128 个用户。

取决于 ps 命令使用的标志,列标题将显示在标准输出中显示的信息的上方。标题定义在以下列表中(使这些标题显示的标志在圆括号中显示):

ADDR
通常情况下,( -l 和 l 标志)包含进程栈的段号;如果为内核进程,则为预处理数据区的地址。
BND
( -o THREAD 标志)绑定内核线程的处理器(如果有)的逻辑处理器号。对一个进程来说,如果它的线程全都绑定到同一处理器上,则显示该字段。
C
( -f、 l 和 -l 标志)每次系统时钟周期和发现线程或进程需要运行时增加进程或线程的 CPU 利用率。调度程序通过每秒除 2 将该值衰减。对于 sched_other 策略,CPU 利用率用于确定进程调度优先级。大值表示一个 CPU 密集处理且造成更低的进程优先级而小值表示一个 I/O 密集处理且造成更高的优先级。
CMD
( -f、 -l 和 l 标志)包含命令名。使用 -f 标志显示完整命令名和它的参数。
COMMAND
( s、 u 和 v)包含命令名。使用 -f 标志显示完整命令名和它的参数。

F 字段表
标志 十六进制值 定义
SLOAD 0x00000001 表示该进程正在核心内存中操作。
SNOSWAP 0x00000002 表示该进程不能被交换出去。
STRC 0x00000008 表示该进程正被跟踪。
SWTED 0x00000010 表示进程在跟踪时停止。
SFWTED 0x00000020 表示在被跟踪时,调用 fork 子例程后进程停止。
SEWTED 0x00000040 表示在被跟踪时,调用 exec 子例程后进程停止。
SLWTED 0x00000080 表示在被跟踪时,调用 load 或 unload 子例程后进程停止。
SFIXPRI 0x00000100 表示该进程有固定的优先级,忽略 pcpu 字段描述符。
SKPROC 0x00000200 表示一个内核进程。
SOMASK 0x00000400 表示收到信号后恢复旧掩码。
SWAKEONSIG 0x00000800 表示该信号将异常终止 sleep 子例程。内容必须不与 PCATCH 标志的内容相同。 PCATCH 和 SWAKEONSIG 的内容必须大于 PMASK 的内容。
SUSER 0x00001000 表示该进程处在用户方式中。
SLKDONE 0x00002000 表示该进程已完成锁定。
STRACING 0x00004000 表示该进程是个调试进程。
SMPTRACE 0x00008000 表示多进程调试。
SEXIT 0x00010000 表示正退出进程。
SSEL 0x00020000 表示处理器正在选择:唤醒/等待危险。
SORPHANPGRP 0x00040000 表示一个孤立进程组。
SNOCNTLPROC 0x00080000 表示会话导带放弃了终端控制。
SPPNOCLDSTOP 0x00100000 表示当子进程停止时,SIGHLD 信号不送到父进程。
SEXECED 0x00200000 表示已运行该进程。
SJOBSESS 0x00400000 表示在当前会话中使用作业控制。
SJOBOFF 0x00800000 表示该进程不受作业控制的影响。
PSIGDELIVERY 0x01000000 表示该进程被程序检查处理程序使用。
SRMSHM 0x02000000 表示调用 exit 子例程过程中,该进程除去了共享内存。
SSLOTFREE 0x04000000 表示进程槽空闲。
SNOMSG 0x08000000 表示没有其它 uprintf 子例程消息。
F
( -l 和 l 标志)与进程和线程相关的部分更重要 F 字段标志(十六进制和添加的)显示在下表中。

F 字段表
标志 十六进制值 定义
SLOAD 0x00000001 表示该进程正在核心内存中操作。
SNOSWAP 0x00000002 表示该进程不能被交换出去。
STRC 0x00000008 表示该进程正被跟踪。
SKPROC 0x00000200 表示一个内核进程。
SEXIT 0x00010000 表示正退出进程。
SEXECED 0x00200000 表示已运行该进程。
SEXECING 0x01000000 表示该进程正在执行(执行一个可执行程序)。
TKTHREAD 0x00001000 表示该线程是一个内核线程。
注:
可通过分别查询 /usr/include/sys/proc.h 和 /usr/include/sys/thread.h 文件中的 p_flags 和 t_flags 字段查看所有进程和线程标识的定义。
LIM
( v 标志)通过调用 setrlimit 子例程指定内存使用的软限制。如果不指定限制则显示为 xx。如果将该限制设为系统限制,(没限制),显示值 UNLIM
NI
( -l 和 l 标志)为 sched other 策略计算优先级中使用的细调值。
PID
(所有标志)进程的进程标识。
PGIN
( v 标志)处理未装入核心的页面引用产生的磁盘 I/O 的数目。
PPID
( -f、 l 和 -l 标志)父进程的进程标识。
PRI
( -l 和 l 标志)进程或内核线程的优先级;数字越大优先级越低。
RSS
( v 标志)进程的实际内存(驻留集)大小(单位是 1KB)。
S
( -l 和 l 标志)进程或内核线程的状态:

对于进程:

O
不存在
A
活动
W
已交换
I
空闲(等待启动)
Z
已取消
T
已停止

对于内核线程:

O
不存在
R
正在运行
S
正在休眠
W
已交换
Z
已取消
T
已停止
SC
( -o THREAD 标志)进程或内核线程的暂挂数。对进程来说,暂挂数定义为内核线程暂挂数的总和。
SCH
( -o THREAD 标志)内核线程的调度策略。使用 012 分别显示策略 sched_othersched_fifosched_rr
SIZE
( v 标志)进程数据节的虚拟大小(单位是 1 KB)。
SSIZ
( s 标志)内核堆栈的大小。对于多线程进程,该值总为 0(零)。
STAT
( s、 u 和 v 标志)包含进程状态:

0
不存在
A
活动
I
中间的
Z
已取消
T
已停止
K
可用的内核进程
STIME
( -f 和 u 标志)进程的启动时间。 LANG 环境变量控制该字段的外观。
SZ
( -l 和 l 标志)该进程核心映像的大小单位是 1KB。
THCNT
( -o thcount 标志)进程拥有的内核线程数。
TID
( -o THREAD 标志)内核线程的线程标识。
TIME
(所有标志)进程的执行时间总和。
TRS
( v 标志)文本的驻留集(实际内存)大小。
TSIZ
( v 标志)文本(共享程序)映像的大小。
TTY
(所有标志)进程的控制工作站:

-
进程与工作站不相关。
?
未知。
Number
TTY 数目。例如,条目 2 表示 TTY2。
UID
( -f、 -l 和 l 标志)进程所有者的用户标识。登录名在 -f 标志下打印。
USER
( u 标志)进程所有者的登录名。
WCHAN
( -l 标志)进程或内核线程为之等待或休眠的事件。对于内核线程,如果内核线程正在运行,该字段为空。对于进程,如果只有一个内核线程正在休眠,等待通道定义为该休眠内核线程的等待通道;否则显示一个星号。
WCHAN
( l 标志)进程等待的事件(系统中的一个地址)。选择一个符号对地址分类,除非请求数字输出。
%CPU
( u 和 v 标志)进程启动后,该进程使用 CPU 的时间百分比。该值通过将进程使用 CPU 的时间除以进程所用时间计算。在多处理器环境中,因为同一进程中的几个线程可以同时在不同的 CPU 上运行,该值要进一步除以可用 CPU 数。(由于计算该数据基于的时间不同,所有 %CPU 字段的总和可能超过 100%。)
%MEM
( u 和 v 标志)进程使用的实际内存的百分比。 %MEM 往往会夸大与其它进程共享程序文本的进程的成本。但运行一个程序的多个副本和所有实例共享该程序文本的一个副本时不会计算时间。在该程序的每个实例中计算文本节的大小。这意味着如果运行一个程序的多个副本,所有进程的总 %MEM 值可以超过 100%。

进程已退出且有一个父进程,而父进程没有等待该进程,将该进程标志为 <defunct>。已阻塞且正在尝试退出的进程标志为 <exiting>。ps 命令试图确定内存或交换区创建进程时给定的文件名和参数。

注:
  1. 当 ps 命令运行时可以更改进程。为死进程显示的部分数据是不相关的。
  2. ps 程序检查内存来检索文件名和创建进程时使用的参数。然而,进程可以破坏信息,使检索文件名和参数的方法不可靠。

标志

下列标志前面有一个 -(负号):

-A 将关于所有进程的信息写到标准输出。
-a 将关于所有进程(除了会话导带和与终端无关的进程)的信息写到标准输出。
-c Clist 仅显示关于 Clist 变量列出的指定到工作负荷管理类的进程的信息。 Clist 变量或者是一个由逗号分开的类名列表或者是一个由双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的类名列表。
-d 将关于所有进程(除会话导带)的信息写到标准输出。
-e 将除内核进程以外所有进程的信息写到标准输出。
-F Format 与 -o Format 相同
-f 生成一个完整列表。
-G Glist 仅将关于进程的信息写到标准输出,这些进程在为 Glist 变量列出的进程组中。 Glist 变量或者是一个由逗号分隔的进程组标识符列表或者是一个由双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的进程组标识符的列表。该标志与 -g Glist 标志等价。
-g Glist 该标志与 -G Glist 标志等价。
-k 列出内核进程。
-l 生成一长列表。另见 l 标志。
-m 列出内核线程和进程。进程的输出行后面跟着一额外输出行,它关于每个内核线程。该标志不显示特定于线程的字段(bnd、scount、sched、 thcount 和 tid),除非指定了适当的 -o Format 标志。
-N 不聚集线程统计信息。使用该标志后,ps 报告那些可以通过不遍历进程的线程链来获得那些统计信息。
-n NameList 指定备用系统名称列表文件来替换缺省系统名称列表文件。因为直接提供信息给内核,操作系统不使用 -n 标志。
-o Format 以 Format 变量指定的格式显示信息。可以为 Format 变量指定多个字段说明符。Format 变量或者是一个由逗号分隔的字段说明符列表或是一个由""(双引号)引起来的之间用逗号或一个或多个空格或两者分隔的说明符列表。

每个字段说明符有一个缺省头。通过为头附加一个=(等号),后跟用户定义的文本,可以覆盖缺省头。写字段的顺序采用命令行中列格式指定的方式。字段宽度由系统指定,它至少为缺省的或用户定义的头文本宽度。如果头文本为空,(例如如果指定 -o user=),字段宽度至少为缺省头文本宽度。如果所有头字段都为空,不写头行。

系统标识下列字段说明符:

args
说明正在执行的完整命令名。包含所有命令行参数,尽管可能发生截断。该字段的缺省头为 COMMAND。
bnd
表示进程或内核线程绑定到哪个(如果有)处理器。该字段的缺省头为 BND。
class
表示为该进程分配的工作负荷管理类。该字段的缺省头为 CLASS。
comm
表示正在执行的命令的短名称。不包含命令行参数。该字段的缺省头为 COMMAND。
cpu
确定进程调度优先级。每次系统时钟周期和发现进程或线程运行时增加进程或线程的 CPU 利用率。调度程序通过每秒除 2 将该值衰减。对于 sched_other 策略,大值表示一个 CPU 密集处理且造成更低的进程优先级而小值表示一个 I/O 密集处理且造成更高的优先级。
etime
表示进程启动后所用的时间。所用时间以下列格式显示:

[[ dd-]hh:]mm:ss

其中 dd 指定天数,hh 指定小时数,mm 指定分钟数及 ss 指定秒数。该字段的缺省头为 ELAPSED。

group
表示该进程的有效组标识。显示文本组标识。如果不能得到文本组标识,使用十进制表示。该字段的缺省头为 GROUP。
nice
表示进程细调值的十进制值。该字段的缺省头为 NI。
-o Format(续)
pcpu
表示使用的 CPU 时间占可用 CPU 时间的比例,以百分比表示。该字段的缺省头为 %CPU。
pgid
表示进程组标识的十进制值。该字段的缺省头为 PGID。
pid
表示进程标识的十进制值。该字段的缺省头为 PID。
ppid
表示父进程标识的十进制值。该字段的缺省头为 PPID。
rgroup
表示该进程的实际组标识。显示文本组标识。如果不能得到文本组标识,使用十进制表示。该字段的缺省头为 RGROUP。
ruser
表示该进程的实际用户标识。显示文本用户标识。如果不能得到文本用户标识,使用十进制表示。该字段的缺省头为 RUSER。
scount
表示内核线程的暂挂数。该字段的缺省头为 SC。
sched
表示内核线程的调度策略。该字段的缺省头为 SCH。
tag
表示工作负荷管理器应用程序标记。该字段的缺省头为 TAG。该标记为一个字符串,它不超过 30 个字符长且由 ps 显示时可能会截断。对于不设置标记的进程,该字段显示为一个 -(连字符)。
tcpu
总 CPU 时间。指示单个进程的总累积 CPU 时间。该字段的缺省头为 TCPU。
tctime
总连接时间。指示登录会话可会活动时的时间总量。这仅在会话引导进程中才有意义。该字段的缺省头为 TCTIME。
tdiskio
总磁盘 I/O。指示单个进程的 I/O 的总累积块数。该字段的缺省头为 TDISKIO。
-o Format(续)
thcount
表示该进程拥有的内核线程数。该字段的缺省头为 THCNT。
THREAD
表示下列字段:

  • 用户名(uname 字段)
  • 进程的进程及父进程标识(pid 和 ppid 字段)
  • 线程的内核线程标识(tid 字段)
  • 进程或内核线程的状态(S 字段)
  • 进程或内核线程的 CPU 利用率(C 字段)
  • 进程或内核线程的优先级(PRI 字段)
  • 进程或内核线程的暂挂数( scount 字段)
  • 进程或内核线程的等待通道( WCHAN 字段)
  • 进程或内核线程的标志(F 字段)
  • 进程的控制终端(tty 字段)
  • 进程或内核线程绑定到的 CPU (bnd 字段)
  • 正在由进程执行的命令(comm 字段)

使用 -o THREAD 标志实际上不显示线程,除非也指定 -m 标志。

tid
表示内核线程的线程标识。该字段的缺省头为 TID。
time
表示进程启动后的累计 CPU 时间。时间以下列格式显示:

[ dd-]hh:mm:ss

其中 dd 指定天数,hh 指定小时数,mm 指定分钟数及 ss 指定秒数。该字段的缺省头为 TIME。

tty
表示该进程的控制终端名。该字段的缺省头为 TT。
user
表示该进程的有效用户标识。显示文本用户标识。如果不能得到文本用户标识,使用十进制表示。该字段的缺省头为 USER。
vsz
使用十进制整数表示虚拟内存中进程的大小,以千字节为单位。该字段的缺省头为 VSZ。
-o Format(续)

否则,通过 Format 变量,可以显示指定格式的多个字段,包括字段描述符。如果在 Format 变量中使用字段描述符,它必须包含在双引号(" ")内。下表显示了字段描述符如何对应字段说明符:

字段            字段            缺省值描述符          说明符          头

%a              args            COMMAND%c              comm            COMMAND%t              etime           ELAPSED%G              group           GROUP%n              nice            NI%C              pcpu            %CPU%r              pgid            PGID%p              pid             PID%P              ppid            PPID%g              rgroup          RGROUP%u              ruser           RUSER%x              time            TIME%y              tty             TTY%U              user            USER%z              vsz             VSZ
-p Plist 仅显示关于 Plist 变量指定的进程号的进程的信息。 Plist 变量或者是一个由逗号分隔的进程标志号列表或者是一个由双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的进程标识号列表。
-t Tlist 仅显示与 Tlist 变量中列出的工作站相关的进程的信息。 Tlist 变量或者是一个由逗号分隔的工作站标识符列表或者是一个双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的工作站标识符列表。
-U Ulist 仅显示关于 Ulist 变量指定的用户标识号或登录名的进程的信息。 Ulist 变量或者是一个由逗号分隔的用户标识列表或者是一个由双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的用户标识列表。在该列表中,ps 命令显示数字用户标识除非使用 -f 标志;然后命令显示登录名。该标志与 -u Ulist 标志等价。另见 u 标志。
-u Ulist 该标志与 -U Ulist 标志等价。

选项

下列标志前面不是 -(负号):

a 显示所有有终端的进程的信息(通常仅显示用户自己的进程)。
c 显示命令名,它存储在系统内用于记帐,而不显示保留在进程地址空间中的命令参数。
e 显示环境以及传递给命令的参数,最多不超过 80 个字符。
ew 从 e 标志折行显示一额外行。
eww 从 e 标志折行显示必要次。
g 显示所有进程。
l 显示一个长列表,具有 F、S、UID、PID、PPID、C、PRI、NI、ADDR、SZ、PSS、WCHAN、TTY、TIME 和 CMD 字段。
n 显示数字输出。在长列表中,数字地而不是符号地打印 WCHAN 字段。在用户列表中,USER 字段替换为 UID 字段。
s 显示基本输出格式中每个进程(由系统维护人员使用)的内核栈的大小(SSIZ)。对于多线程进程,该值总为 0(零)。
t Tty 显示进程,它的控制 tty 为 Tty 变量的值,它应该指定为 ps 命令打印;也就是,0 对于终端 /dev/tty/0、lft0 对于 /dev/lft0 及 pts/2 对于 /dev/pts/2。
u 显示面向用户的输出。这包括 USER、PID、%CPU、%MEM、SZ、RSS、TTY、STAT、STIME、TIME 和 COMMAND 字段。
v 显示 PGIN、SIZE、RSS、LIM、TSIZ、TRS、%CPU 和 %MEM 字段。
w 为输出指定一宽列格式(132 列而不是 80 列)。如果重复,(例如, ww),任意地使用宽输出。此信息用于决定要打印的长命令有多少。
x 显示没有终端的进程除了有一个控制终端的进程。

退出状态

该命令返回以下出口值:

0 成功完成。
>0 发生错误。

示例

  1. 要显示所有进程,请输入:

    ps -e -f
  2. 要列出特定用户拥有的进程,请输入:
    ps -f -l -ujim,jane,su
  3. 要列出与 /dev/console 和 /dev/tty1 ttys 相关的进程,请输入:
    ps -t console,tty/1
  4. 要列出与终端无关的进程,请输入:
    ps -t -
  5. 要使用字段描述符显示指定的格式,请输入:
    ps -o ruser,pid,ppid=parent,args

    输出为:

    RUSER   PID     parent  COMMANDhelene  34      12      ps -o ruser,pid,ppid=parent,args
  6. 要使用字段描述符显示指定的格式,请输入:
    ps -o "< %u > %p %y : %a"

    输出为:

    < RUSER  >      PID     TT :    COMMAND< helene >      34      pts/3 : ps -o < %u > %p %y : %a
  7. 要显示关于由当前终端控制的进程和内核线程的信息,请输入:
    ps -lm

    输出类似于:

         F S UID  PID PPID  C PRI NI ADDR  SZ WCHAN   TTY  TIME  CMD240003 A  26 8984 7190  1  60 20 2974 312       pts/1  0:00  -ksh   400 S   -    -    -  1  60  -    -   -           -     -  -200005 A  26 9256 8984 15  67 20 18ed 164       pts/1  0:00  ps     0 R   -    -    - 15  67  -    -   -           -     -  -
  8. 要显示关于所有进程和内核线程的信息,请输入:
    ps -emo THREAD

    输出类似于:

    USER   PID  PPID  TID S  C PRI SC   WCHAN   FLAG   TTY BND  CMDjane  1716 19292    - A 10  60  1       * 260801 pts/7   -  biod   -     -     - 4863 S  0  60  0 599e9d8   8400     -   -  -   -     -     - 5537 R 10  60  1 5999e18   2420     -   3  -luke 19292 18524    - A  0  60  0 586ad84 200001 pts/7   -  -ksh   -     -     - 7617 S  0  60  0 586ad84    400     -   -  -luke 25864 31168    - A 11  65  0       - 200001 pts/7   -  -   -     -     - 8993 R 11  65  0       -      0     -   -  -

文件

/usr/bin/ps 包含 ps 命令。
/etc/passwd 指定用户标识信息。
/dev/pty* 表示工作站(PTY)名称。
/dev/tty* 表示工作站(TTY)名称。

相关信息

kill 命令和 nice 命令。

《AIX 5L V5.2 性能管理指南》 中的 Using ps to Identify CPU-Intensive Programs。

System V ps 命令

语法

/usr/sysv/bin/ps [ -a ] [ -A ] [ -c ] [ -d ] [ -e ] [ -f ] [ -j ] [ -l ] [ -L ] [ -P ] [ -y ] [ -g pgrplist ] [ -o format ] [ -p proclist ] [ -s sidlist ] [ -t termlist ] [ { -u | -U } uidlist ] [ -G grplist ]

描述

ps 命令打印关于活动进程的信息。不使用标志,ps 打印与控制终端相关的进程的信息。输出包含进程标识、终端标识符、累计执行时间和命令名。随着标志的变化相应地显示信息。

输出

取决于 ps 命令使用的标志,列标题随着显示的信息变化。标题定义在下列列表中(使这些标题显示的标志在圆括号中显示):

F (-l)
与进程相关的标志(十六进制和添加的)或线程(如果指定了 -L 选项)。与进程和线程相关的部分更重要 F 字段标志(十六进制和添加的)显示在下表中:

F 字段表
标志 十六进制值 定义
SLOAD 0x00000001 表示该进程正在核心内存中操作。
SNOSWAP 0x00000002 表示该进程不能被交换出去。
STRC 0x00000008 表示该进程正被跟踪。
SKPROC 0x00000200 表示一个内核进程。
SEXIT 0x00010000 表示正退出进程。
SEXECED 0x00200000 表示已运行该进程。
SEXECING 0x01000000 表示该进程正在执行(执行一个可执行程序)。
TKTHREAD 0x00001000 表示该线程是一个仅内核线程。
注:
通过分别在 /usr/include/sys/proc.h 和 /usr/include/sys/thread.h 文件中查询 p_flags 和 t_flags 字段,能看到所有进程和线程的定义。
S (-l)
进程或内核线程的状态:

对于进程:

O
不存在
A
活动
W
已交换
I
空闲
Z
已取消
T
已停止

对于内核线程:

O
不存在
R
正在运行
S
正在休眠
W
已交换
Z
已取消
T
已停止
UID (-f,- l)
进程的用户标识号(登录名在 -f 选项下打印)。
PID (all)
进程的进程标识。
PPID (-f,-l)
父进程的进程标识。
CLS (-c)
进程的调度类。仅在使用 -c 标志时打印。
NI (-l)
为 sched_other 策略计算优先级中使用的进程细调值。
PRI (-c, -l)
进程或内核线程的优先级。数字越大,优先级越低。
ADDR (-l)
通常情况下,包含进程栈的段号;如果为内核进程,则为预处理数据区的地址。
SZ (-l)
进程的核心映像的页面大小。
WCHAN(-l)
进程或内核线程为之等待或休眠的事件。对于内核线程,如果内核线程正在运行,该字段为空。对于进程,如果只有一个内核线程正在休眠,等待通道定义为该休眠内核线程的等待通道;否则显示一个星号。
STIME (-f,-u)
进程的启动时间。 LANG 环境变量控制该字段的外观。
TTY (all)
进程的控制工作站。

-
进程与工作站不相关。
?
未知
TIME (all)
进程的执行时间总和。
LTIME (-L)
单个 LWP 的执行时间。
CMD (all)
包含命令名。使用 -f 标志显示完整命令名和它的参数。
LWP (-L)
内核线程的 tid。
NLWP(-Lf)
进程中核心线程的数目。
PSR (-P)
绑定内核线程的处理器(如果有)的逻辑处理器号。对一个进程来说,如果它的线程全都绑定到同一处理器上,则显示该字段。
RSS (-ly)
进程的实际内存(驻留集)大小(单位是页)。

格式

下表描述了系统标识的字段描述符。可以连同 -o 标志使用这些字段描述符来指定 ps 命令的输出格式。

系统标识的字段描述符为:

addr
通常情况下,表示进程栈的段号;如果为内核进程,则为预处理数据区的地址。该字段的缺省头为 ADDR。
args
说明正在执行的完整命令名。包含所有命令行参数,尽管可能发生截断。该字段的缺省头为 COMMAND。
c
每次系统时钟周期和发现进程或线程运行时增加进程或线程的 CPU 利用率。调度程序通过每秒除 2 将该值衰减。对于 sched_other 策略,CPU 利用率用于确定进程调度优先级。大值表示一个 CPU 密集处理且造成更低的进程优先级而小值表示一个 I/O 密集处理且造成更高的优先级。该字段的缺省头为 C。
class
表示内核线程的调度策略。策略为 sched_other、sched_fifo 和 sched_rr。该字段的缺省头为 CLS。
comm
表示正在执行的命令的短名称。不包含命令行参数。该字段的缺省头为 COMMAND。
etime
表示进程启动后所用的时间。所用时间以该格式显示:

[[ dd -] hh: ]mm :ss

其中 dd 指定天数, hh 指定小时数, mm 指定分钟数及 ss 指定秒数。

该字段的缺省头为 ELAPSED。

f
与进程相关的标志(十六进制和添加的)。该字段的缺省头为 COMMAND。
fname
表示进程的可执行文件的基础名的前 8 个字节。该字段的缺省头为 COMMAND。
gid
使用一个十进制整数表示该进程的有效组标识号。该字段的缺省头为 GID。
group
表示该进程的有效组标识。显示文本组标识。如果不能得到文本组标识,使用十进制表示。该字段的缺省头为 GROUP。
lwp
表示该内核线程的线程标识。该字段的缺省头为 TID。
nice
表示进程细调值的十进制值。该字段的缺省头为 NI。
nlwp
表示该进程拥有的内核线程数。该字段的缺省头为 THCNT。
pcpu
表示使用的 CPU 时间占可用 CPU 时间的比例,以百分比表示。该字段的缺省头为 %CPU。
pgid
表示进程组标识的十进制值。该字段的缺省头为 PGID。
pid
表示进程标识的十进制值。该字段的缺省头为 PID。
pmem
表示进程使用的实际内存的百分比。该字段的缺省头为 %MEM。
ppid
表示父进程标识的十进制值。该字段的缺省头为 PPID。
pri
表示进程或内核线程的优先级;数字越大优先级越低。该字段的缺省头为 PRI。
psr
表示绑定内核线程的处理器(如果有)的逻辑处理器号。该字段的缺省头为 PSR。
rgid
使用一个十进制整数表示该进程的实际组标识号。该字段的缺省头为 RGID。
rgroup
表示该进程的实际组标识。显示文本组标识。如果不能得到文本组标识,使用十进制表示。该字段的缺省头为 RGROUP。
rss
表示该进程的实际内存(驻留集)大小(单位是 1 KB)。该字段的缺省头为 RSS。
ruid
使用一个十进制整数表示该进程的实际用户标识号。该字段的缺省头为 RUID。
ruser
表示该进程的实际用户标识。显示文本用户标识。如果不能得到文本用户标识,使用十进制表示。该字段的缺省头为 RUSER。
s
表示该进程的状态。该字段的缺省头为 S。
sid
表示会话导带的进程标识。该字段的缺省头为 SID。
stime
表示进程的启动时间。LANG 环境变量控制该字段的外观。该字段的缺省头为 STIME。
time
表示进程启动后的累计 CPU 时间。时间显示的格式同 etime 中的格式。该字段的缺省头为 TIME。
tty
表示该进程的控制终端名。该字段的缺省头为 TT。
uid
使用一个十进制整数表示该进程的有效用户标识号。该字段的缺省头为 UID。
user
表示该进程的有效用户标识。显示文本用户标识。如果不能得到文本用户标识,使用十进制表示。该字段的缺省头为 USER。
vsz
使用一个十进制整数表示该进程的核心映像,以千字节为单位。该字段的缺省头为 VSZ。
wchan
表示该进程或内核线程为之等待或休眠的事件。对于内核线程,如果内核线程正在运行,该字段为空。对于进程,如果只有一个内核线程正在休眠,等待通道定义为该休眠内核线程的等待通道;否则显示一个星号。

该字段的缺省头为 WCHAN。

标志

部分标志接受列表作为参数。列表中的项或者可使用逗号分隔或者使用双引号引起来且之间用逗号或空格分隔。 proclist 和 pgrplist 的值必须为数字。

-a 将关于所有进程(除了会话导带和与终端无关的进程)的信息写到标准输出。
-A 将关于所有进程的信息写到标准输出。
-c 以反映调度程序属性的格式打印信息。 -c 标志影响 -f 和 -l 标志的输出,描述如下。
-d 将关于所有进程(除会话导带)的信息写到标准输出。
-e 将除内核进程以外所有进程的信息写到标准输出。
-f 生成一个完整列表。
-g pgrplist 仅将关于在由 pgrplist 指定的进程组中的进程的信息写到标准输出。 pgrplist 的值必须为数字。
-G grplist 仅将关于由 grplist 指定的进程组中的进程的信息写到标准输出。 -G 标志接受组名。
-j 显示会话标识和进程组标识。
-l 生成一长列表。
-L 打印进程中活动线程的状态。
-o format 以 format 变量指定的格式显示信息。可以为非 format 变量指定多个字段说明符。可以连同 -o 标志一起使用的字段说明符的描述在 Format 节的上面。
-p proclist 仅显示关于 proclist 指定的进程号的进程的信息。 proclist 的值必须为数字。
-P 显示进程的主内核线程绑定到的处理器(如果有)的逻辑处理器号。
-s sidlist 显示会话导带标识由 sidlist 指定的所有线程。
-t termlist 仅显示与 termlist 指定的终端相关的进程的信息。
-u uidlist 仅显示关于 uidlist 指定的用户标识号或登录名的进程的信息。
-U uidlist 仅显示关于 uidlist 指定的用户标识号或登录名的进程的信息。
-y 当与 -l 选项结合时,改变长列表以便它以千字节打印"RSS"和"SZ"且不打印"F"和"ADDR"字段。

退出状态

该命令返回以下出口值:

0 成功完成。
>0 发生错误。

示例

  1. 要显示所有进程,请输入:

    ps -e -f
  2. 要列出用户"guest"拥有的进程,请输入:
    ps -f -l -u guest 
  3. 要列出与 /dev/pts/0 和 /dev/pts/1 终端相关的进程,请输入:
    ps -t pts/0,pts/1
  4. 要列出与终端无关的进程,请输入:
    ps -t -
  5. 要使用字段说明符显示指定的格式,请输入:
    ps -o ruser,pid,ppid,args
  6. 要显示关于进程中所有内核线程的信息,请输入:
    ps -L
  7. 要显示所有进程的会话标识和进程组标识,请输入:
    ps -jA
  8. 要显示调度类和进程的优先级,请输入:
    ps -c -l 
  9. 要显示进程中内核线程的信息及内核线程数,请输入:
    ps -L -f 
  10. 要显示进程或内核线程绑定到的处理器,请输入:
    ps  -P

文件

/usr/sysv/bin/ps 包含 System V R4 ps 命令。
/etc/passwd 包含用户标识信息。
/dev/pty* 表示工作站(PTY)名称。
/dev/tty* 表示工作站(TTY)名称。

aix的ps命令详解相关推荐

  1. docker ps命令详解 列出运行中的容器

    docker ps命令详解 列出运行中的容器 使用docker ps命令即可列出运行中的容器,执行该命令后,会出现如下7列表格 CONTAINER_ID      表示容器ID IMAGE       ...

  2. 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例

    本小章讲解进程管理中的进程概览和作用,及ps命令详解,ps -ef,ps aux,ps -le,ps -l的输出详解和示例 文章目录 进程概览 什么是进程和程序 进程管理的作用 进程启动方式 僵尸进程 ...

  3. Linux ps命令详解,Linux查看进程

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 ps命令详解 一.常用操作 1.查看所有进程(连带命令行) 2.显示所有包含其 ...

  4. centos7中ps显示的内容_值得收藏,史上最全Linux ps命令详解

    原标题:值得收藏,史上最全Linux ps命令详解 一.程序员的疑惑 大概在十多年前,我当时还是一个产品经理.由于一些工作的原因,需要向运维工程师学习一些linux常用命令. 当使用linux ps这 ...

  5. linux bsd命令,linux ps命令详解(BSD风格)

    linux ps命令详解(BSD风格) linux中ps只显示进程的静态快照,及瞬间的进程状态,它拥有众多的风格,可分为3组:UNIX风格,BSD风格,GNU风格,本文介绍BSD风格的ps指令. 参数 ...

  6. linux 查看删除进程 ps命令详解

    ps命令详解 名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显示瞬间行程 (process) 的动态 参数:ps的参数非常多, 在此仅列出几个常用的参数 ...

  7. linux中的ps fx命令,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断 ...

  8. linux环境下ps命令行,Linux下ps命令详解

    下ps命令详解Linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须 ...

  9. linux环境下ps命令行,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 Linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运 ...

最新文章

  1. php正则 贪婪模式与懒惰模式
  2. sublime text常用快捷键及多行光标批量操作教程
  3. redis、memcache、mongoDB 对比
  4. 一招明白URL和URI的区别
  5. STL中empty()函数的误用
  6. 【Siddhi】Error:osgi: [siddhi-execution-string] Manifest file ${_include} missing OSGi facet
  7. 代码也浪漫——Python烟花秀
  8. Spring Cloud构建微服务架构(四)分布式配置中心(续)
  9. 在sv testbench中加checker的几种办法
  10. iOS开发中屏幕旋转(二)
  11. 修改broadcom 4322无线网卡ID教程,不再显示第三方无线网卡
  12. 全网最后一个免费版本,永久可用
  13. 事务的4个特性——ACID(原子性、一致性、隔离性和持久性)、更新丢失问题...
  14. 【MySQL】联结表
  15. idea中,maven窗口功能图标含义
  16. 智能投顾奇葩发展术:越靠“爹”,越有机会
  17. 电信互联网卡套餐一览表2020_2020网安周:中国电信全新思路应对移动互联网新威胁...
  18. 工资软件测试白盒测试报告,软件测试白盒测试实验报告
  19. 解决win系统点击右键时鼠标一直不停转圈操作
  20. Android 国家化的坑 - 小数点变成逗号

热门文章

  1. 第四周day19-三剑客之awk
  2. [转]架构必备:Rate limiting 的作用和常见方式
  3. 花了5年时间,用过市面上95%的工具,终于找到这款万能报表工具
  4. 如何实现开发一个企业认证开发版微信服务号的详细步骤
  5. Matlab代码书写规范
  6. 诺基亚确认将推出平板电脑 拟配置MeeGo系统
  7. UEFI 及 legacy 重装系统
  8. MOSES统计机器翻译系统实现过程
  9. 优秀网页设计的七条基本准则
  10. 查2个服务器之间网络延迟,科普一下!如何查看网络延迟与服务器LAG以及解决方法!...