分类:
2006-01-10 15:52:24
显示进程的当前状态。该文档描述了标准 AIX ps 命令,以及 命令。
ps [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ Format ] [ Clist ] [ Glist ] [ Glist ] [ ] [ NameList ] [ Plist ] [ Tlist ] [ Ulist ] [ Ulist ]
ps [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ | | | ] [ 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 命令使用的标志,列标题将显示在标准输出中显示的信息的上方。标题定义在以下列表中(使这些标题显示的标志在圆括号中显示):
标志 | 十六进制值 | 定义 |
---|---|---|
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 子例程消息。 |
标志 | 十六进制值 | 定义 |
---|---|---|
SLOAD | 0x00000001 | 表示该进程正在核心内存中操作。 |
SNOSWAP | 0x00000002 | 表示该进程不能被交换出去。 |
STRC | 0x00000008 | 表示该进程正被跟踪。 |
SKPROC | 0x00000200 | 表示一个内核进程。 |
SEXIT | 0x00010000 | 表示正退出进程。 |
SEXECED | 0x00200000 | 表示已运行该进程。 |
SEXECING | 0x01000000 | 表示该进程正在执行(执行一个可执行程序)。 |
TKTHREAD | 0x00001000 | 表示该线程是一个内核线程。 |
对于进程:
对于内核线程:
进程已退出且有一个父进程,而父进程没有等待该进程,将该进程标志为
下列标志前面有一个 -(负号):
-A | 将关于所有进程的信息写到标准输出。 |
-a | 将关于所有进程(除了会话导带和与终端无关的进程)的信息写到标准输出。 |
-c Clist | 仅显示关于 Clist 变量列出的指定到工作负荷管理类的进程的信息。 Clist 变量或者是一个由逗号分开的类名列表或者是一个由双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的类名列表。 |
-d | 将关于所有进程(除会话导带)的信息写到标准输出。 |
-e | 将除内核进程以外所有进程的信息写到标准输出。 |
-F Format | 与 -o Format 相同 |
-f | 生成一个完整列表。 |
-G Glist | 仅将关于进程的信息写到标准输出,这些进程在为 Glist 变量列出的进程组中。 Glist 变量或者是一个由逗号分隔的进程组标识符列表或者是一个由双引号(" ")引起来的且之间用逗号或一个或多个空格或两者分隔的进程组标识符的列表。该标志与 Glist 标志等价。 |
-g Glist | 该标志与 Glist 标志等价。 |
-k | 列出内核进程。 |
-l | 生成一长列表。另见 标志。 |
-m | 列出内核线程和进程。进程的输出行后面跟着一额外输出行,它关于每个内核线程。该标志不显示特定于线程的字段(、、、 和 ),除非指定了适当的 Format 标志。 |
-N | 不聚集线程统计信息。使用该标志后,ps 报告那些可以通过不遍历进程的线程链来获得那些统计信息。 |
-n NameList | 指定备用系统名称列表文件来替换缺省系统名称列表文件。因为直接提供信息给内核,操作系统不使用 -n 标志。 |
-o Format | 以 Format 变量指定的格式显示信息。可以为 Format 变量指定多个字段说明符。Format 变量或者是一个由逗号分隔的字段说明符列表或是一个由“”(双引号)引起来的之间用逗号或一个或多个空格或两者分隔的说明符列表。
每个字段说明符有一个缺省头。通过为头附加一个=(等号),后跟用户定义的文本,可以覆盖缺省头。写字段的顺序采用命令行中列格式指定的方式。字段宽度由系统指定,它至少为缺省的或用户定义的头文本宽度。如果头文本为空,(例如如果指定 -o user=),字段宽度至少为缺省头文本宽度。如果所有头字段都为空,不写头行。 系统标识下列字段说明符:
|
-o Format(续) |
|
-o Format(续) |
|
-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 命令显示数字用户标识除非使用 标志;然后命令显示登录名。该标志与 Ulist 标志等价。另见 标志。 |
-u Ulist | 该标志与 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 | 发生错误。 |
ps -e -f
ps -f -l -ujim,jane,su
ps -t console,tty/1
ps -t -
ps -o ruser,pid,ppid=parent,args
输出为:
RUSER PID parent COMMAND helene 34 12 ps -o ruser,pid,ppid=parent,args
ps -o "< %u > %p %y : %a"
输出为:
< RUSER > PID TT : COMMAND < helene > 34 pts/3 : ps -o < %u > %p %y : %a
ps -lm
输出类似于:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 240003 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 - - - - - -
ps -emo THREAD
输出类似于:
USER PID PPID TID S C PRI SC WCHAN FLAG TTY BND CMD jane 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 命令。 |
指定用户标识信息。 | |
/dev/pty* | 表示工作站(PTY)名称。 |
/dev/tty* | 表示工作站(TTY)名称。 |
命令和 命令。
《AIX 5L V5.2 性能管理指南》 中的 。
/usr/sysv/bin/ps [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ pgrplist ] [ format ] [ proclist ] [ sidlist ] [ termlist ] [ { | } uidlist ] [ grplist ]
ps 命令打印关于活动进程的信息。不使用标志,ps 打印与控制终端相关的进程的信息。输出包含进程标识、终端标识符、累计执行时间和命令名。随着标志的变化相应地显示信息。
取决于 ps 命令使用的标志,列标题随着显示的信息变化。标题定义在下列列表中(使这些标题显示的标志在圆括号中显示):
标志 | 十六进制值 | 定义 |
---|---|---|
SLOAD | 0x00000001 | 表示该进程正在核心内存中操作。 |
SNOSWAP | 0x00000002 | 表示该进程不能被交换出去。 |
STRC | 0x00000008 | 表示该进程正被跟踪。 |
SKPROC | 0x00000200 | 表示一个内核进程。 |
SEXIT | 0x00010000 | 表示正退出进程。 |
SEXECED | 0x00200000 | 表示已运行该进程。 |
SEXECING | 0x01000000 | 表示该进程正在执行(执行一个可执行程序)。 |
TKTHREAD | 0x00001000 | 表示该线程是一个仅内核线程。 |
对于进程:
对于内核线程:
下表描述了系统标识的字段描述符。可以连同 标志使用这些字段描述符来指定 ps 命令的输出格式。
系统标识的字段描述符为:
[[ dd -] hh: ]mm :ss其中 dd 指定天数,hh 指定小时数,mm 指定分钟数及 ss 指定秒数。
该字段的缺省头为 ELAPSED。
该字段的缺省头为 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 标志一起使用的字段说明符的描述在 节的上面。 |
-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 | 发生错误。 |
ps -e -f
ps -f -l -u guest
ps -t pts/0,pts/1
ps -t -
ps -o ruser,pid,ppid,args
ps -L
ps -jA
ps -c -l
ps -L -f
ps -P
/usr/sysv/bin/ps | 包含 System V R4 ps 命令。 |
/etc/passwd | 包含用户标识信息。 |
/dev/pty* | 表示工作站(PTY)名称。 |
/dev/tty* | 表示工作站(TTY)名称。 |