ps命令的详细说明(man ps)_全网最全解释
名称
ps
- 报告当前进程的快照。
概要
ps [选项]
描述
ps
显示关于选定活动进程的信息。如果您希望持续更新所选进程的信息,可以使用top
命令。
该版本的ps
接受多种选项类型:
- UNIX选项:可以组合使用,必须以短横线(-)开头。
- BSD选项:可以组合使用,不需要以短横线开头。
- GNU长选项:以两个短横线(–)开头。
不同类型的选项可以自由组合,但可能会产生冲突。由于ps
兼容多个标准和实现,因此存在一些同义选项,功能是相同的。
需要注意的是,ps -aux
与ps aux
是不同的。POSIX和UNIX标准要求ps -aux
列出所有属于用户名为"x"的用户的进程,并显示-a
选项选择的所有进程。如果没有用户名为"x",ps
可能会将命令解释为ps aux
并显示警告。这个行为是为了帮助旧脚本和习惯的过渡,但它是脆弱的、可能改变,因此不应依赖。
默认情况下,ps
选择与当前用户具有相同有效用户ID(euid=EUID)并与调用者关联的终端的所有进程。它显示进程ID(pid=PID)、与进程关联的终端(tname=TTY)、累计的CPU时间(以[DD-]hh:mm:ss格式显示)以及可执行文件名(ucmd=CMD)。默认情况下,输出是未排序的。
使用BSD样式选项将添加进程状态(stat=STAT)到默认显示中,并显示命令参数(args=COMMAND)而不是可执行文件名。您可以通过PS_FORMAT环境变量覆盖这一点。使用BSD样式选项还会更改进程选择,包括由您拥有的其他终端(TTYs)上的进程;或者可以描述为将选择设置为所有进程的集合,排除其他用户拥有的或不在终端上的进程。当选项被描述为“相同”时,这些效果不被考虑,因此-M将被视为与Z相同。
除非下文另有说明,否则进程选择选项是叠加的。默认选择将被丢弃,然后将所选进程添加到要显示的进程集中。因此,如果一个进程满足给定选择标准中的任何一个,它将被显示。
示例
-
查看系统上所有进程(使用标准语法):
ps -e ps -ef ps -eF ps -ely
-
使用BSD语法查看系统上所有进程:
ps ax ps axu
-
打印进程树:
ps -ejH ps axjf
-
获取线程信息:
ps -eLf ps axms
-
获取安全信息:
ps -eo euser,ruser,suser,fuser,f,comm,label ps axZ ps -eM
-
查看以root身份运行的所有进程(实际和有效ID),以用户格式显示:
ps -U root -u root u
-
以用户定义的格式查看所有进程:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm ps -Ao pid,tt,user,fname,tmout,f,wchan
-
只打印syslogd的进程ID:
ps -C syslogd -o pid=
-
只打印PID为42的进程名称:
ps -q 42 -o comm=
接下来是文档的下一部分翻译:
简单进程选择
-
a
解除BSD风格的“仅自己”限制,该限制在使用某些BSD风格(不带“-”)选项时或当ps人格设置为BSD样式时会被施加。这种方式选择的进程集是除了通过其他方式选择的进程集之外的一个集合。另一种描述是,此选项使ps
列出所有具有终端(tty)的进程,或与x
选项一起使用时列出所有进程。 -
-A
选择所有进程。与-e
相同。 -
-a
选择所有进程,除了会话领导者(见getsid(2)
)和不与终端相关联的进程。 -
-d
选择所有进程,除了会话领导者。 -
--deselect
选择所有进程,除了那些满足指定条件的进程(否定选择)。与-N
相同。 -
-e
选择所有进程。与-A
相同。 -
g
真正的所有,包括会话领导者。此标志已过时,并可能在未来版本中取消。通常由a
标志隐含,只有在sunOS4人格中运行时才有用。 -
-N
选择所有进程,除了那些满足指定条件的进程(否定选择)。与--deselect
相同。 -
T
选择与此终端相关联的所有进程。与不带任何参数的t
选项相同。 -
r
将选择限制为仅运行中的进程。 -
x
解除BSD风格的“必须有tty”限制,该限制在使用某些BSD风格(不带“-”)选项时或当ps人格设置为BSD样式时会被施加。这种方式选择的进程集是除了通过其他方式选择的进程集之外的一个集合。另一种描述是,此选项使ps
列出所有属于您的进程(与ps具有相同的EUID),或与a
选项一起使用时列出所有进程。
通过列表选择进程
这些选项接受一个以空格或逗号分隔的列表作为单一参数。它们可以多次使用。例如:ps -p "1 2" -p 3,4
-
-123
等同于--pid 123
。 -
123
等同于--pid 123
。 -
-C cmdlist
按命令名称选择。选择可执行名称在cmdlist
中的进程。 -
-G grplist
按实际组ID(RGID)或名称选择。选择实际组名称或ID在grplist
中的进程。实际组ID标识创建进程的用户组,见getgid(2)
。 -
-g grplist
按会话或有效组名称选择。选择会话由许多标准指定,但按有效组选择是其他一些操作系统使用的逻辑行为。当列表完全为数字时(因为会话通常是数字),此ps将按会话选择。组ID号仅在也指定了一些组名称时才有效。参见-s
和--group
选项。 -
--Group grplist
按实际组ID(RGID)或名称选择。与-G
相同。 -
--group grplist
按有效组ID(EGID)或名称选择。选择有效组名称或ID在grplist
中的进程。有效组ID描述进程使用的文件访问权限组,见getegid(2)
。-g
选项通常是--group
的替代品。 -
p pidlist
按进程ID选择。等同于-p
和--pid
。 -
-p pidlist
按PID选择。选择进程ID号出现在pidlist
中的进程。等同于p
和--pid
。 -
--pid pidlist
按进程ID选择。与-p
和p
相同。 -
--ppid pidlist
按父进程ID选择。选择父进程ID在pidlist
中的进程,也就是选择那些是pidlist
中列出进程的子进程。 -
q pidlist
按进程ID选择(快速模式)。等同于-q
和--quick-pid
。 -
-q pidlist
按PID选择(快速模式)。选择进程ID号出现在pidlist
中的进程。使用此选项时,ps仅读取pidlist
中列出的pid所需的信息,不应用其他过滤规则。pid的顺序是未排序的,并保持原样。在此模式下不允许使用额外的选择选项、排序和树形列表。与q
和--quick-pid
相同。 -
--quick-pid pidlist
按进程ID选择(快速模式)。与-q
和q
相同。 -
-s sesslist
按会话ID选择。选择会话ID在sesslist
中的进程。 -
--sid sesslist
按会话ID选择。与-s
相同。 -
t ttylist
按终端选择。几乎与t
和--tty
相同,但也可以与空的ttylist
一起使用,以指示与ps
关联的终端。使用T
选项被认为比使用t
带有空ttylist
更简洁。 -
-t ttylist
按终端选择。选择与给定ttylist
中的终端相关联的进程。终端(ttys或用于文本输出的屏幕)可以以多种形式指定:/dev/ttyS1
、ttyS1
、S1
。可以使用一个简单的-
来选择未附加到任何终端的进程。 -
--tty ttylist
按终端选择。与-t
和t
相同。 -
U userlist
按有效用户ID(EUID)或名称选择。选择有效用户名称或ID在userlist
中的进程。有效用户ID描述进程使用的文件访问权限用户,见geteuid(2)
。与-u
和--user
相同。 -
-U userlist
按实际用户ID(RUID)或名称选择。选择实际用户名称或ID在userlist
中的进程。实际用户ID标识创建进程的用户,见getuid(2)
。 -
-u userlist
按有效用户ID(EUID)或名称选择。选择有效用户名称或ID在userlist
中的进程。有效用户ID描述进程使用的文件访问权限用户,见geteuid(2)
。与U
和--user
相同。 -
--User userlist
按实际用户ID(RUID)或名称选择。与-U
相同。 -
--user userlist
按有效用户ID(EUID)或名称选择。与-u
和U
相同。
继续翻译文档的下一部分内容:
输出格式控制
这些选项用于选择ps
显示的信息。输出可能因系统的"personality"不同而有所变化。
-
-c
显示不同的调度信息,用于-l
选项。 -
--context
显示安全上下文格式(适用于SELinux)。 -
-f
显示完整格式的列表。此选项可以与许多其他UNIX样式选项结合使用,以添加额外的列。它还会显示命令参数。与-L
一起使用时,将添加NLWP
(线程数量)和LWP
(线程ID)列。参见c
选项、格式关键字args
和格式关键字comm
。 -
-F
显示额外的完整格式。参见-f
选项,-F
暗示-f
。 -
--format format
用户定义的格式。与-o
和o
相同。 -
j
显示BSD作业控制格式。 -
-j
显示作业格式。 -
l
显示BSD长格式。 -
-l
显示长格式。与-y
选项一起使用时非常有用。 -
-M
添加一列安全数据。与Z
(适用于SELinux)相同。 -
O format
预加载格式的o
选项(超载)。BSD的O
选项可以像-O
(带有一些预定义常用字段的用户定义输出格式)一样工作,或者可以用于指定排序顺序。启发式算法用于确定此选项的行为。为了确保获得预期的行为(排序或格式化),请以其他方式指定选项(例如使用-O
或--sort
)。用作格式选项时,与-O
相同,带有BSD"personality"。 -
-O format
类似于-o
,但预加载了一些默认列。与-o pid,format,state,tname,time,command
或-o pid,format,tname,time,cmd
相同,参见下文的-o
。 -
o format
指定用户定义的格式。与-o
和--format
相同。 -
-o format
用户定义的格式。format
是一个以空格或逗号分隔的单一参数,提供了一种指定单个输出列的方式。可识别的关键字在下文的"标准格式说明符"部分中描述。可以根据需要重命名标题(例如ps -o pid,ruser=RealUser -o comm=Command
)。如果所有列标题为空(例如ps -o pid= -o comm=
),则不会输出标题行。列宽度会根据需要增加以适应宽标题;这可以用于扩展某些列,如WCHAN
(例如ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm
)。还提供了显式宽度控制(例如ps opid,wchan:42,cmd
)。ps -o pid=X,comm=Y
的行为因系统的"personality"而异;输出可能是一列名为X,comm=Y
的列,也可能是两列,分别名为X
和Y
。有疑问时请使用多个-o
选项。使用PS_FORMAT
环境变量来根据需要指定默认值;DefSysV
和DefBSD
是可用于选择默认UNIX或BSD列的宏。 -
s
显示信号格式。 -
u
显示用户导向格式。 -
v
显示虚拟内存格式。 -
X
显示寄存器格式。 -
-y
不显示标志;用rss
替代addr
。此选项只能与-l
一起使用。 -
Z
添加一列安全数据。与-M
(适用于SELinux)相同。
输出修饰符
-
c
显示真实的命令名称。它从可执行文件的名称派生,而不是从argv
值派生。因此,命令参数及其任何修改不会显示。此选项有效地将args
格式关键字转换为comm
格式关键字;与-f
格式选项以及各种BSD样式格式选项(这些选项通常显示命令参数)一起使用非常有用。参见-f
选项、格式关键字args
和格式关键字comm
。 -
--cols n
设置屏幕宽度。 -
--columns n
设置屏幕宽度。 -
--cumulative
包括一些已终止子进程的数据(作为与父进程的总和)。 -
e
显示命令后的环境变量。 -
f
ASCII艺术风格的进程层次结构(树形)。 -
--forest
ASCII艺术风格的进程树。 -
h
不显示标题。(或者,在BSD风格下,每屏幕显示一个标题)。h
选项存在问题。标准BSD的ps
使用此选项在每页输出上打印标题,但旧的Linuxps
使用此选项完全禁用标题。本版本的ps
遵循Linux的用法,除非选择了BSD风格,否则不会打印标题。在任何情况下,您都可以使用--headers
和--no-headers
长选项来分别启用或禁用标题。 -
-H
显示进程层次结构(树形)。 -
--headers
在每页输出上重复显示标题行。 -
k spec
指定排序顺序。排序语法为[+|-]key[,[+|-]key[,...]]
。从"标准格式说明符"部分中选择一个多字母关键字。+
是可选的,因为默认方向是数值或词汇顺序增加。与--sort
相同。例如:
ps jaxkuid,-ppid,+pid ps axk comm o comm,args ps kstart_time -ef
-
--lines n
设置屏幕高度。 -
-n namelist
设置namelist
文件。与N
相同。对于正确的WCHAN
显示,namelist
文件是必要的,并且必须与当前Linux内核完全匹配才能输出正确的结果。如果不使用此选项,namelist
的默认搜索路径如下:$PS_SYSMAP $PS_SYSTEM_MAP /proc/*/wchan /boot/System.map-$(uname -r) /boot/System.map /lib/modules/$(uname -r)/System.map /usr/src/linux/System.map /System.map
-
n
对WCHAN
和USER
(包括所有类型的UID和GID)输出数值。 -
N namelist
指定namelist
文件。与-n
相同,参见上面的-n
。 -
--no-headers
完全不打印标题行。--no-heading
是此选项的别名。 -
O order
排序顺序(超载)。BSD的O
选项可以像-O
(带有一些预定义常用字段的用户定义输出格式)一样工作,或者可以用于指定排序顺序。启发式算法用于确定此选项的行为。为了确保获得预期的行为(排序或格式化),请以其他方式指定选项(例如使用-O
或--sort
)。对于排序,过时的BSD
O
选项语法为O[+|-]k1[,[+|-]k2[,...]]
。它根据由k1,k2,...
短键所指定的多级排序对进程列表进行排序。+
目前是可选的,只是重新强调了键的默认方向,但可以帮助区分O
排序与O
格式。-
仅会反转它前面的键的方向。 -
--rows n
设置屏幕高度。 -
S
将一些信息(如CPU使用率)从已终止的子进程汇总到其父进程中。这对于检查一个反复生成短期子进程以完成工作的系统很有用。 -
--sort spec
指定排序顺序。排序语法为[+|-]key[,[+|-]key[,...]]
。从"标准格式说明符"部分中选择一个多字母关键字。+
是可选的,因为默认方向是数
值或词汇顺序增加。与k
相同。例如:ps jax --sort=uid,-ppid,+pid
。
-
w
宽输出。此选项使用两次表示无限宽度。 -
-w
宽输出。此选项使用两次表示无限宽度。 -
--width n
设置屏幕宽度。
线程显示
-
H
显示线程,就像它们是进程一样。 -
-L
显示线程,可能带有LWP
和NLWP
列。 -
m
在进程后显示线程。 -
-m
在进程后显示线程。 -
-T
显示线程,可能带有SPID
列。
接下来的部分包括“其他信息”、“进程标志”、“进程状态代码”以及“标准格式说明符”等内容的翻译。
其他信息
-
--help section
打印帮助信息。section
参数可以是simple
、list
、output
、threads
、misc
或all
中的一个。参数可以缩写为这些单词的首字母,如s
、l
、o
、t
、m
、a
。 -
--info
打印调试信息。 -
L
列出所有格式说明符。 -
V
打印procps-ng
版本。 -
-V
打印procps-ng
版本。 -
--version
打印procps-ng
版本。
注意事项
-
该
ps
命令通过读取/proc
中的虚拟文件来工作。该ps
命令不需要设置setuid
或具有任何特权来运行。不要赋予该ps
命令任何特殊权限。 -
该
ps
命令需要访问namelist
数据以正确显示WCHAN
。对于2.6之前的内核,必须安装System.map
文件。 -
CPU使用率当前表示为进程生命周期内运行时间的百分比。这不是理想的方式,也不符合
ps
所遵循的标准。CPU使用率不太可能准确加起来为100%。 -
SIZE
和RSS
字段不包括进程的一些部分,包括页表、内核栈、struct thread_info
和struct task_struct
。这通常是至少20 KiB的内存,总是常驻的。SIZE
是进程的虚拟大小(代码+数据+栈)。 -
标记为
<defunct>
的进程是死进程(通常称为“僵尸”进程),它们仍然存在是因为其父进程未能正确销毁它们。如果父进程退出,这些进程将被init(8)
销毁。 -
如果用户名的长度大于显示列的长度,则显示数值用户ID。
-
像
ps -aux
这样的命令选项并不推荐使用,因为它混淆了两种不同的标准。根据POSIX和UNIX标准,上述命令要求显示所有具有TTY的进程(通常是用户正在运行的命令)以及所有由名为x
的用户拥有的进程。如果该用户不存在,则ps
将假定您实际上是想执行ps aux
命令。
进程标志
这些值的总和显示在标志输出说明符的“F”列中:
1
派生(fork)但未执行(exec)4
使用超级用户权限
进程状态代码
以下是s
、stat
和state
输出说明符(标题为“STAT”或“S”)将显示的各种进程状态值:
D
不可中断的睡眠状态(通常是IO)R
运行中或可运行(在运行队列中)S
可中断的睡眠状态(等待事件完成)T
由作业控制信号停止t
由调试器在跟踪时停止W
分页(自2.6.xx内核以来无效)X
死亡状态(应该永远不会看到)Z
僵尸进程,已终止但未被其父进程收割
对于BSD格式和使用stat
关键字时,可能会显示额外的字符:
<
高优先级(对其他用户不友好)N
低优先级(对其他用户友好)L
已锁定到内存中的页面(用于实时和自定义IO)s
是会话领导者l
是多线程的(使用CLONE_THREAD
,如NPTL线程)+
在前台进程组中
过时的排序键
这些键由BSD O
选项使用(当它用于排序时)。GNU --sort
选项不使用这些键,但使用在“标准格式说明符”部分中描述的说明符。请注意,用于排序的值是ps
使用的内部值,而不是一些输出格式字段中使用的“处理过的”值(例如,按tty
排序将按设备号排序,而不是按显示的终端名称排序)。如果希望按处理过的值排序,请将ps
的输出管道输入sort(1)
命令。
KEY
LONG
DESCRIPTION
c
cmd
可执行文件的简单名称C
pcpu
CPU利用率f
flags
与长格式的F字段相同的标志g
pgrp
进程组IDG
tpgid
控制终端进程组IDj
cutime
累计的用户时间J
cstime
累计的系统时间k
utime
用户时间m
min_flt
次要页面错误数M
maj_flt
主要页面错误数n
cmin_flt
累计次要页面错误数N
cmaj_flt
累计主要页面错误数o
session
会话IDp
pid
进程IDP
ppid
父进程IDr
rss
常驻集大小R
resident
常驻页面s
size
以千字节为单位的内存大小S
share
共享页面的数量t
tty
控制终端的设备号T
start_time
进程启动时间U
uid
用户ID号u
user
用户名v
vsize
总虚拟内存大小,以千字节为单位y
priority
内核调度优先级
继续翻译文档的“标准格式说明符”部分:
标准格式说明符
以下是可以用来控制输出格式(例如使用-o
选项)或使用GNU风格的--sort
选项对选定进程进行排序的不同关键字。
例如:
ps -eo pid,user,args --sort user
此版本的ps
尝试识别其他ps
实现中使用的大多数关键字。
以下用户定义的格式说明符可能包含空格:args
、cmd
、comm
、command
、fname
、ucmd
、ucomm
、lstart
、bsdstart
、start
。
某些关键字可能不适用于排序。
-
CODE
HEADER
DESCRIPTION
-
%cpu
%CPU
进程的CPU利用率,以“##.#”格式表示。目前,它是进程使用的CPU时间除以进程运行的时间(cputime/realtime比率),以百分比表示。除非幸运,否则它不会加起来达到100%。(别名:pcpu
)。 -
%mem
%MEM
进程的常驻集大小与机器物理内存的比例,以百分比表示。(别名:pmem
)。 -
args
COMMAND
命令及其所有参数的字符串。可能会显示对参数的修改。此列中的输出可能包含空格。标记为<defunct>
的进程是部分死亡的,等待被其父进程完全销毁。有时进程的args
将不可用;当这种情况发生时,ps
将改为显示括号内的可执行文件名称。(别名:cmd
、command
)。另请参见comm
格式关键字、-f
选项和c
选项。
当最后指定时,此列将扩展到显示的边缘。如果ps
无法确定显示宽度,例如当输出被重定向(通过管道)到文件或另一个命令时,输出宽度是未定义的(可能为80、无限制、由TERM
变量决定等)。可以使用COLUMNS
环境变量或--cols
选项在这种情况下准确确定宽度。w
或-w
选项也可以用来调整宽度。 -
blocked
BLOCKED
被阻止的信号的掩码,参见signal(7)
。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig_block
、sigmask
)。 -
bsdstart
START
命令启动的时间。如果进程是在过去24小时内启动的,输出格式为“HH:MM”;否则输出格式为“Mmm:SS”(其中Mmm
为月份的三个字母)。另请参见lstart
、start
、start_time
和stime
。 -
bsdtime
TIME
累计的CPU时间,用户时间加系统时间。显示格式通常为“MMM:SS”,但如果进程使用了超过999分钟的CPU时间,则可能会向右移位。 -
c
C
处理器利用率。当前,这是进程生命周期内百分比使用的整数值。(参见%cpu
)。 -
caught
CAUGHT
捕获的信号的掩码,参见signal(7)
。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig_catch
、sigcatch
)。 -
cgroup
CGROUP
显示进程所属的控制组。 -
class
CLS
进程的调度类别。(别名:policy
、cls
)。字段的可能值为:-
未报告TS
SCHED_OTHER
FF
SCHED_FIFO
RR
SCHED_RR
B
SCHED_BATCH
ISO
SCHED_ISO
IDL
SCHED_IDLE
?
未知值
-
cmd
CMD
参见args
。(别名:args
、command
)。 -
comm
COMMAND
命令名称(仅可执行文件名称)。命令名称的修改将不会显示。标记为<defunct>
的进程是部分死亡的,等待被其父进程完全销毁。此列中的输出可能包含空格。(别名:ucmd
、ucomm
)。另请参见args
格式关键字、-f
选项和c
选项。
当最后指定时,此列将扩展到显示的边缘。如果ps
无法确定显示宽度,例如当输出被重定向(通过管道)到文件或另一个命令时,输出宽度是未定义的(可能为80、无限制、由TERM
变量决定等)。可以使用COLUMNS
环境变量或--cols
选项在这种情况下准确确定宽度。w
或-w
选项也可以用来调整宽度。 -
command
COMMAND
参见args
。(别名:args
、command
)。 -
cp
CP
每毫一百分之CPU使用率。(参见%cpu
)。 -
cputime
TIME
累计的CPU时间,以“[DD-]hh:mm:ss”格式显示。(别名:time
)。 -
drs
DRS
数据常驻集大小,分配给可执行代码之外的物理内存量。 -
egid
EGID
进程的有效组ID号,以十进制整数表示。(别名:gid
)。 -
egroup
EGROUP
进程的有效组ID。如果可以获得文本组ID且字段宽度允许,将显示文本组ID;否则,将显示十进制表示。(别名:group
)。 -
eip
EIP
指令指针。 -
esp
ESP
栈指针。 -
etime
ELAPSED
自进程启动以来经过的时间,格式为[[DD-]hh:]mm:ss
。 -
etimes
ELAPSED
自进程启动以来经过的时间(以秒为单位)。 -
euid
EUID
有效用户ID(别名:uid
)。 -
euser
EUSER
有效用户名。如果可以获得文本用户ID且字段宽度允许,将显示文本用户ID;否则,将显示十进制表示。n
选项可用于强制显示十进制表示。(别名:uname
、user
)。 -
f
F
与进程关联的标志,参见"进程标志"部分。(别名:flag
、flags
)。 -
fgid
FGID
文件系统访问组ID。(别名:fsgid
)。 -
fgroup
FGROUP
文件系统访问组ID。如果可以获得文本组ID且字段宽度允许,将显示文本组ID;否则,将显示十进制表示。(别名:fsgroup
)。 -
flag
F
参见f
。(别名:f
、flags
)。 -
flags
F
参见f
。(别名:f
、flag
)。 -
fname
COMMAND
进程可执行文件名称的前8个字节。此列中的输出可能包含空格。 -
fuid
FUID
文件系统访问用户ID。(别名:fsuid
)。 -
fuser
FUSER
文件系统访问用户ID。如果可以获得文本用户ID且字段宽度允许,将显示文本用户ID;否则,将显示十进制表示。 -
gid
GID
参见egid
。(别名:egid
)。 -
group
GROUP
参见egroup
。(别名:egroup
)。 -
ignored
IGNORED
被忽略的信号的掩码,参见signal(7)
。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig_ignore
、sigignore
)。 -
ipcns
IPCNS
描述进程所属命名空间的唯一inode号。参见namespaces(7)
。 -
label
LABEL
安全标签,最常用于SELinux上下文数据。此字段用于高安全系统上的强制访问控制(MAC)。 -
lstart
STARTED
命令启动的时间
。另请参见bsdstart
、start
、start_time
和stime
。
-
lsession
SESSION
显示进程的登录会话标识符(如果包含了systemd支持)。 -
lwp
LWP
可调度实体的轻量级进程(线程)ID(别名:spid
、tid
)。参见tid
了解更多信息。 -
machine
MACHINE
显示分配给虚拟机或容器的进程的机器名称(如果包含了systemd支持)。 -
maj_flt
MAJFLT
此进程发生的主要页面错误数。 -
min_flt
MINFLT
此进程发生的次要页面错误数。 -
mntns
MNTNS
描述进程所属命名空间的唯一inode号。参见namespaces(7)
。 -
netns
NETNS
描述进程所属命名空间的唯一inode号。参见namespaces(7)
。 -
ni
NI
nice值。范围从19(对他人最友好)到-20(对他人不友好),参见nice(1)
。(别名:nice
)。 -
nice
NI
参见ni
。(别名:ni
)。 -
nlwp
NLWP
进程中的轻量级进程(线程)数量。(别名:thcount
)。 -
nwchan
WCHAN
进程在内核中睡眠的函数地址(如果进程正在运行,则显示-
)。 -
ouid
OWNER
显示进程会话所有者的Unix用户标识符(如果包含了systemd支持)。 -
pcpu
%CPU
参见%cpu
。(别名:%cpu
)。 -
pending
PENDING
挂起的信号的掩码。参见signal(7)
。进程上挂起的信号与单个线程上挂起的信号是不同的。使用m
选项或-m
选项查看两者。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig
)。 -
pgid
PGID
进程组ID,或等同于进程组领导者的进程ID。(别名:pgrp
)。 -
pgrp
PGRP
参见pgid
。(别名:pgid
)。 -
pid
PID
表示进程ID的数字(别名:tgid
)。 -
pidns
PIDNS
描述进程所属命名空间的唯一inode号。参见namespaces(7)
。 -
pmem
%MEM
参见%mem
。(别名:%mem
)。 -
policy
POL
进程的调度类别。(别名:class
、cls
)。可能的值为:-
未报告TS
SCHED_OTHER
FF
SCHED_FIFO
RR
SCHED_RR
B
SCHED_BATCH
ISO
SCHED_ISO
IDL
SCHED_IDLE
?
未知值
-
ppid
PPID
父进程ID。 -
pri
PRI
进程的优先级。数字越大,优先级越低。 -
psr
PSR
当前分配给进程的处理器。 -
rgid
RGID
实际组ID。 -
rgroup
RGROUP
实际组名称。如果可以获得文本组ID且字段宽度允许,将显示文本组ID;否则,将显示十进制表示。 -
rss
RSS
常驻集大小,即任务使用的未交换物理内存(以千字节为单位)。(别名:rssize
、rsz
)。 -
rssize
RSS
参见rss
。(别名:rss
、rsz
)。 -
rsz
RSZ
参见rss
。(别名:rss
、rssize
)。 -
rtprio
RTPRIO
实时优先级。 -
ruid
RUID
实际用户ID。 -
ruser
RUSER
实际用户ID。如果可以获得文本用户ID且字段宽度允许,将显示文本用户ID;否则,将显示十进制表示。 -
s
S
最小状态显示(一个字符)。有关不同值的含义,请参见"进程状态代码"部分。如果您只想显示第一个字符,请参见stat
。(别名:state
)。 -
sched
SCH
进程的调度策略。调度策略SCHED_OTHER
(SCHED_NORMAL
)、SCHED_FIFO
、SCHED_RR
、SCHED_BATCH
、SCHED_ISO
和SCHED_IDLE
分别显示为0
、1
、2
、3
、4
和5
。 -
seat
SEAT
显示分配给特定工作区的所有硬件设备的标识符(如果包含了systemd支持)。 -
sess
SESS
会话ID,或等同于会话领导者的进程ID。(别名:session
、sid
)。 -
sgi_p
P
进程当前执行的处理器。如果进程当前未运行或不可运行,则显示*
。 -
sgid
SGID
保存的组ID。(别名:svgid
)。 -
sgroup
SGROUP
保存的组名称。如果可以获得文本组ID且字段宽度允许,将显示文本组ID;否则,将显示十进制表示。 -
sid
SID
参见sess
。(别名:sess
、session
)。 -
sig
PENDING
参见pending
。(别名:pending
、sig_pend
)。 -
sigcatch
CAUGHT
参见caught
。(别名:caught
、sig_catch
)。 -
sigignore
IGNORED
参见ignored
。(别名:ignored
、sig_ignore
)。 -
sigmask
BLOCKED
参见blocked
。(别名:blocked
、sig_block
)。 -
size
SIZE
如果进程将所有可写页面弄脏并随后被交换出去,将需要的近似交换空间。这一数字非常粗略! -
slice
SLICE
显示进程所属的分片单元(如果包含了systemd支持)。 -
spid
SPID
参见lwp
。(别名:lwp
、tid
)。 -
stackp
STACKP
进程的栈底(起始)地址。 -
start
STARTED
命令启动的时间。如果进程是在过去24小时内启动的,输出格式为“HH:MM:SS”;否则输出格式为“ Mmm dd”(其中Mmm
为月份的三个字母)。另请参见lstart
、bsdstart
、start_time
和stime
。 -
start_time
START
进程的启动时间或日期。如果进程不是在调用ps
的同一年启动的,则只显示年份;如果不是在同一天启动的,则显示为MmmDD
;否则,显示为HH:MM
。另请参见bsdstart
、start
、lstart
和stime
。 -
stat
STAT
多字符进程状态。有关不同值的含义,请参见"进程状态代码"部分。如果您只想显示第一个字符,请参见s
和state
。 -
state
S
参见s
。(别名:s
)。 -
suid
SUID
保存的用户ID。(别名:svuid
)。 -
supgid
SUPGID
补充组的组ID,如果有的话。参见getgroups(2)
。 -
supgrp
SUPGRP
补充组的组名,如果有的话。参见getgroups(2)
。 -
suser
SUSER
保存的用户名。如果可以获得文本用户ID且字段宽
度允许,将显示文本用户ID;否则,将显示十进制表示。(别名:svuser
)。
-
svgid
SVGID
参见sgid
。(别名:sgid
)。 -
svuid
SVUID
参见suid
。(别名:suid
)。 -
sz
SZ
进程核心镜像的物理页面大小。这包括文本、数据和栈空间。设备映射目前被排除在外;这一点可能会改变。参见vsz
和rss
。 -
tgid
TGID
表示任务所属线程组的数字(别名:pid
)。这是线程组领导者的进程ID。 -
thcount
THCNT
参见nlwp
。(别名:nlwp
)。内核线程数量,归属于进程。 -
tid
TID
表示可调度实体的唯一数字(别名:lwp
、spid
)。此值也可能显示为:进程ID(pid
);进程组ID(pgrp
);会话ID(对于会话领导者);线程组ID(对于线程组领导者);以及tty进程组ID(对于进程组领导者)。 -
time
TIME
累计的CPU时间,以“[DD-]HH:MM:SS”格式显示。(别名:cputime
)。 -
tname
TTY
控制终端(终端)。(别名:tt
、tty
)。 -
tpgid
TPGID
连接到进程的终端(tty)上的前台进程组ID,如果进程未连接到终端,则为-1
。 -
trs
TRS
文本常驻集大小,即分配给可执行代码的物理内存量。 -
tt
TT
控制终端(终端)。(别名:tname
、tty
)。 -
tty
TT
控制终端(终端)。(别名:tname
、tt
)。 -
ucmd
CMD
参见comm
。(别名:comm
、ucomm
)。 -
ucomm
COMMAND
参见comm
。(别名:comm
、ucmd
)。 -
uid
UID
参见euid
。(别名:euid
)。 -
uname
USER
参见euser
。(别名:euser
、user
)。 -
unit
UNIT
显示进程所属的单元(如果包含了systemd支持)。 -
user
USER
参见euser
。(别名:euser
、uname
)。 -
userns
USERNS
描述进程所属命名空间的唯一inode号。参见namespaces(7)
。 -
utsns
UTSNS
描述进程所属命名空间的唯一inode号。参见namespaces(7)
。 -
uunit
UUNIT
显示进程所属的用户单元(如果包含了systemd支持)。 -
vsize
VSZ
参见vsz
。(别名:vsz
)。 -
vsz
VSZ
进程的虚拟内存大小,以KiB(1024字节单位)表示。设备映射目前被排除在外;这一点可能会改变。(别名:vsize
)。 -
wchan
WCHAN
进程正在睡眠的内核函数名称,如果进程正在运行,则显示-
,如果进程是多线程且ps
未显示线程,则显示*
。
环境变量
以下环境变量可能会影响ps
的行为:
-
COLUMNS
覆盖默认显示宽度。 -
LINES
覆盖默认显示高度。 -
PS_PERSONALITY
设置为posix
、old
、linux
、bsd
、sun
、digital
等之一(参见下文的“personality”部分)。 -
CMD_ENV
设置为posix
、old
、linux
、bsd
、sun
、digital
等之一(参见下文的“personality”部分)。 -
I_WANT_A_BROKEN_PS
强制使用过时的命令行解释。 -
LC_TIME
日期格式。 -
PS_COLORS
目前不支持。 -
PS_FORMAT
默认输出格式覆盖。您可以将其设置为-o
选项使用的格式字符串。DefSysV
和DefBSD
值特别有用。 -
PS_SYSMAP
默认namelist
(System.map)位置。 -
PS_SYSTEM_MAP
默认namelist
(System.map)位置。 -
POSIXLY_CORRECT
不找借口忽略错误的“功能”。 -
POSIX2
设置为“on”时,表现得像POSIXLY_CORRECT
。 -
UNIX95
不找借口忽略错误的“功能”。 -
_XPG
取消CMD_ENV=irix
的非标准行为。
通常情况下,不建议设置这些变量。唯一的例外是CMD_ENV
或PS_PERSONALITY
,可以将其设置为Linux以用于正常系统。如果没有此设置,ps
将遵循Unix98标准中无用和糟糕的部分。
personality(特性)
390
类似于OS/390 OpenEdition的ps
aix
类似于AIX的ps
bsd
类似于FreeBSD的ps
(完全不标准)compaq
类似于Digital Unix的ps
debian
类似于旧的Debian的ps
digital
类似于Tru64(曾是Digital Unix,曾是OSF/1)的ps
gnu
类似于旧的Debian的ps
hp
类似于HP-UX的ps
hpux
类似于HP-UX的ps
irix
类似于Irix的ps
linux
***** 推荐 *****old
类似于原始Linux的ps
(完全不标准)os390
类似于OS/390 OpenEdition的ps
posix
标准s390
类似于OS/390 OpenEdition的ps
sco
类似于SCO的ps
sgi
类似于Irix的ps
solaris2
类似于Solaris 2+(SunOS 5)的ps
sunos4
类似于SunOS 4(Solaris 1)的ps
(完全不标准)svr4
标准sysv
标准tru64
类似于Tru64(曾是Digital Unix,曾是OSF/1)的ps
unix
标准unix95
标准unix98
标准
参见
pgrep(1)
、pstree(1)
、top(1)
、proc(5)
。
标准
此ps
符合以下标准:
- 单一Unix规范的第2版
- 开放组技术标准基础规范,第6期
- IEEE Std 1003.1, 2004 Edition
- X/Open系统接口扩展 [UP XSI]
- ISO/IEC 9945:2003
作者
ps
最初由Branko Lankester(lankeste@fwi.uva.nl
)编写。Michael K. Johnson(johnsonm@redhat.com
)对其进行了重大改写,使其使用proc文件系统,过程中改变了一些东西。Michael Shields(mjshield@nyx.cs.du.edu
)添加了pid列表功能。Charles Blake(cblake@bbn.com
)添加了多级排序、dirent风格的库、设备名称到号码的内存映射数据库、直接在System.map上进行的近似二进制搜索以及许多代码和文档清理。David Mossberger-Tang为psupdate
编写了通用的BFD支持。Albert Cahalan(albert@users.sf.net
)重新编写了ps
,支持完整的Unix98和BSD,并为过时和外来语法添加了一些丑陋的黑客。
请将bug报告发送到⟨procps@freelists.org⟩。不需要或建议订阅。2014年7月PS(1)