PS(1) General Commands Manual PS(1)

名称

ps - 输出当前进程的快照。

概述

ps [option ...]

描述

ps 显示关于选定的活动进程的信息。如果您想要随时更新选择标准和所显示的信息,请改用 top

This version of ps accepts several kinds of options.

Unix options, which may be grouped and must be preceded by a dash.
BSD 选项,可以分组列出,并且不能加上短横线。
GNU 长选项,前面有两个短横线 "--"。

不同类型的选项可以自由组合,但也有可能会出现冲突。由于此 ps 兼容许多标准和 ps 实现,因此存在一些功能相同的同义选项。

默认情况下,ps 选择与当前用户具有相同有效用户 ID (euid=EUID) 并与调用者关联到同一终端的所有进程。它显示进程 ID (pid=PID)、与进程关联的终端 (tname=TTY)、[DD-]hh:mm:ss 格式的累计 CPU 时间 (time=TIME) 以及可执行文件名称 (ucmd=CMD) 。默认情况下,不对输出进行排序。

使用 BSD 风格选项会将进程状态 (stat=STAT) 添加到默认显示,并显示命令参数 (args=COMMAND) 而不是可执行文件名称。您可以使用 PS_FORMAT 环境变量覆盖它。使用 BSD 风格的选项还将更改进程选择标准,以包括您拥有的其他终端 (TTY) 上的进程;或者,也可以描述为选择所有进程,除了其他用户拥有的或不处于终端上的进程。之后我们说两个选项 "相同" 时,指的是不考虑上述区别,因此 -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=

简单的进程选择

解除 BSD 风格中的 "仅你自己的" 限制,该限制在使用某些 BSD 风格(不带 "-")的选项,或 ps 特色设置为类似 BSD 时,会被应用于所有进程的集合。以这种方式选择的进程集合会与通过其他方式选择的进程集合相加。另一种描述是,此选项使 ps 列出所有带有终端 (tty) 的进程,或者,当与 x 选项同时使用时,列出所有进程。
选择所有进程。与 -e 相同。
选择除了会话头领(参见 getsid(2))和没有关联到终端的进程以外的所有进程。
选择除了会话头领以外的所有进程。
选择除了满足指定条件的进程以外的所有进程(反向选择)。与 -N 相同。
选择所有进程。与 -A 相同。
真的选择所有进程,甚至包括会话头领。该标志已过时,并且可能在未来版本中停止使用。通常来说 a 标志会隐含启用该选项,而且该选项仅在设置为 sunos4 特色时才有用。
选择除了满足指定条件的进程以外的所有进程(反向选择)。与 --deselect 相同。
选择关联到此终端的所有进程。与不带参数的 t 选项相同。
将选择限制为仅包含正在运行的进程。
解除 BSD 风格中的 "必须有 tty" 限制,该限制在使用某些 BSD 风格(不带 "-")的选项,或 ps 特色设置为类似 BSD 时,会被应用于所有进程的集合。以这种方式选择的进程集合会与通过其他方式选择的进程集合相加。另一种描述是,此选项使 ps 列出您拥有(与 ps 具有相同的 EUID)的所有进程,或者,当与 a 选项同时使用时,列出所有进程。

通过列表选择进程

这些选项接受单个参数,格式是以空格或逗号分隔的列表。这些选项可以多次使用。例如:ps -p "1 2" -p 3,4

123
--pid 123 相同。
+123
--sid 123 相同。
-123
按照进程组 ID (PGID) 进行选择。
按照命令名称进行选择。这将选择可执行文件名称位于给定的 命令列表 中的进程。注意:命令名称和命令行是不同的。以前版本的 procps 和内核将命令名称截断为 15 个字符。现在两者的限制都已不再存在。如果您依赖于仅和 15 个字符进行匹配,则可能不再能得到匹配项。
按照真实组 ID (RGID) 或名称进行选择。这将选择真实组名称或 ID 在 组列表 中的进程。真实的组 ID 表示创建进程的用户所属的组,参见 getgid(2)
按照会话或有效组名称进行选择。许多标准都指定了按照会话进行选择,但按照有效组进行选择是其他几个操作系统在逻辑上的行为。当列表完全是数字时(就像会话那样),此版本的 ps 将按会话进行选择。仅当还指定了某些组名称时,才能使用组 ID。请参阅 -s--group 选项。
按照真实组 ID (RGID) 或名称进行选择。与 -G 相同。
按照有效组 ID (EGID) 或名称进行选择。这将选择有效组名称或 ID 在 组列表 中的进程。有效组 ID 意味着进程将使用这个组的权限进行文件访问(请参阅 getegid(2))。-g 选项通常是 --group 的替代选项。
按照进程 ID 进行选择。与 -p--pid 相同。
按照 PID 进行选择。这将选择进程 ID 位于 pid列表 中的进程。与 p--pid 相同。
按照进程 ID 进行选择。与 -pp 相同。
按照父进程 ID 进行选择。这将选择父进程 ID 位于 pid列表 中的进程。也就是说,这将选择 pid列表 中列出的进程的子进程。
按照进程 ID 进行选择(快速模式)。与 -q--quick-pid 相同。
按照 PID 进行选择(快速模式)。这将选择进程 ID 位于 pid列表 中的进程。使用此选项时,ps 仅读取 pid列表 中列出的 pid 的必要信息,并且不应用其他筛选规则。 pid 的顺序将被保留且不进行排序。此模式下不允许再添加选择选项、排序选项和森林类型的列表显示。与 q--quick-pid 相同。
按照进程 ID 进行选择(快速模式)。与 -qq 相同。
按照会话 ID 进行选择。这将选择会话 ID 位于 会话列表 中的进程。
按照会话 ID 进行选择。与 -s 相同。
按照 tty 进行选择。与 -t--tty 几乎相同,但当 tty列表 为空时,这个选项可以返回与 ps 关联的终端。使用 T 选项被认为是比使用带有空 tty列表t 选项更干净的做法。
按照 tty 进行选择。这将选择与 tty列表 中给定的终端关联的进程。终端(tty,或文本输出屏幕)可以用多种形式指定:/dev/ttyS1、ttyS1、S1。单纯的 "-" 可用于选择未依附于任何终端的进程。
按照终端进行选择。与 -tt 相同。
按照有效用户 ID (EUID) 或名称进行选择。这将选择有效用户名称或 ID 位于 用户列表 中的进程。有效用户 ID 意味着进程将使用这个用户的权限进行文件访问(请参阅 geteuid(2))。与 -u--user 相同。
按照真实用户 ID (RUID) 或名称进行选择。这将选择真实用户名称或 ID 位于 用户列表 中的进程。真实用户 ID 表示创建进程的用户,请参见 getuid(2)
按照有效用户 ID (EUID) 或名称进行选择。这将选择有效用户名称或 ID 位于 用户列表 中的进程。

有效用户 ID 意味着进程将使用这个用户的权限进行文件访问(请参阅 geteuid(2))。与 U--user 相同。

按照真实用户 ID (RUID) 或名称进行选择。与 -U 相同。
按照有效用户 ID (EUID) 或名称进行选择。与 -uU 相同。

输出格式控制

这些选项用于选择 ps 显示的信息。输出可能依特色而发生改变。

-l 选项显示不同的调度器信息。
显示安全上下文格式(用于 SELinux)。
Do full-format listing. This option can be combined with many other Unix-style options to add additional columns. It also causes the command arguments to be printed. When used with -L, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the c option, the format keyword args, and the format keyword comm.
更加完整的格式。参见 -f 选项,因为 -F 隐含启用该选项。
用户定义的格式。与 -oo 相同。
BSD 任务控制格式。
任务格式。
显示 BSD 长格式。
长格式。-y 选项和此选项同时使用时通常很有用。
添加一列安全数据。与 Z 相同(用于 SELinux)。
is preloaded o (overloaded). The BSD O option can act like -O (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g., with -O or --sort). When used as a formatting option, it is identical to -O, with the BSD personality.
类似 -o,但预加载了一些默认的列。与 -o pid,格式,state,tname,time,command-o pid,格式,tname,time,cmd 相同,见下文的 -o
指定用户定义的格式。与 -o--format 相同。
User-defined format. format is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify individual output columns. The recognized keywords are described in the STANDARD FORMAT SPECIFIERS section below. Headers may be renamed (ps -o pid,ruser=RealUser -o comm=Command) as desired. If all column headers are empty (ps -o pid= -o comm=) then the header line will not be output. Column width will increase as needed for wide headers; this may be used to widen up columns such as WCHAN (ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm). Explicit width control (ps opid,wchan:42,cmd) is offered too. The behavior of ps -o pid=X,comm=Y varies with personality; output may be one column named "X,comm=Y" or two columns named "X" and "Y". Use multiple -o options when in doubt. Use the PS_FORMAT environment variable to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default Unix or BSD columns.
增加一列,显示 psr
显示信号格式。
显示面向用户的格式。
显示虚拟内存格式。
寄存器格式。
不要显示标志;显示 rss 而不是 addr。此选项仅能和 -l 同时使用。
添加一列安全数据。与 -M 相同(用于 SELinux)。

输出修饰符

显示真实的命令名称。该名称是从可执行文件名导出的,而不是从 argv 值导出的。因此不会显示命令参数及对其的任何修改。该选项实际上将 args 格式关键字转换为 comm 格式关键字;它对于 -f 格式选项和各种 BSD 风格格式选项很有用,这些选项通常都显示命令参数。请参阅 -f 选项、格式关键字 args 和格式关键字 comm
设置屏幕宽度。
设置屏幕宽度。
包括一些已死亡的子进程的数据(作为总和显示在父进程中)。
Set the date format of the lstart field to format. This format is parsed by strftime(3) and should be a maximum of 24 characters to not mis-align columns.
-D 相同。
在命令后显示环境变量。
用 ASCII 字符艺术显示进程的层次结构(森林)。
用 ASCII 字符艺术显示进程树。
没有表头。(或者,使用 BSD 特色时,每个屏幕显示一个表头)。h 选项有一个问题。标准 BSD ps 使用此选项时会在每页输出上打印表头,但较旧的 Linux ps 使用此选项时则完全禁用表头。此版本的 ps 遵循 Linux 用法,不打印表头,除非选择了 BSD 特色,而在这种情况下,它会在每页输出上打印表头。无论当前使用了什么特色,您都可以使用长选项 --headers--no-headers 选项,分别表示在每页打印表头和完全禁用表头。
显示进程的层次结构(森林)。
重复显示表头行,每页输出显示一次。
Specify sorting order. Sorting syntax is [+|-]key.RB [,[ + | - ].IR key [,...]]. Choose a multi-letter key from the STANDARD FORMAT SPECIFIERS section. The "+" is optional since default direction is increasing numerical or lexicographic order. Identical to --sort.
示例:
ps jaxkuid,-ppid,+pid
ps axk comm o comm,args
ps kstart_time -ef
设置屏幕高度。
对于 WCHAN 和 USER,显示数字输出(包括各种类型的 UID 和 GID)。
完全不打印表头行。--no-heading 是此选项的别名。
Sorting order (overloaded). The BSD O option can act like -O (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g., with -O or --sort).
For sorting, obsolete BSD O option syntax is O[+|-]k1[,[+|-]k2[,...]]. It orders the processes listing according to the multilevel sort specified by the sequence of one-letter short keys k1,k2, ..." described in the OBSOLETE SORT KEYS section below. The "+" is currently optional, merely re-iterating the default direction on a key, but may help to distinguish an O sort from an O format. The "-" reverses direction only on the key it precedes.
设置屏幕高度。
将死亡的子进程的一些信息,例如 CPU 使用情况,加到其父进程的信息中。这对于检查通过让父进程反复 fork 出生命周期很短的子进程来完成工作的系统很有用。
Specify sorting order. Sorting syntax is [+|-]key[,[+|-]key[,...]]. Choose a multi-letter key from the STANDARD FORMAT SPECIFIERS section. The "+" is optional since default direction is increasing numerical or lexicographic order. Identical to k. For example: ps jax --sort=uid,-ppid,+pid
使用信号名称的缩写显示信号掩码,并扩展列的宽度。如果列宽无法显示所有信号,则该列将以加号 "+" 结尾。仅带有短横线 "-" 的列表示没有信号。
宽版输出。使用该选项两次表示无限宽度。
宽版输出。使用该选项两次表示无限宽度。
设置屏幕宽度。

线程显示

像进程一样显示线程。
显示线程,如有可能,显示 LWP 和 NLWP 列。
在进程之后显示线程。
在进程之后显示线程。
显示线程,如有可能,显示 SPID 列。

其他信息

打印帮助消息。 参数可以是 simple、list、output、threads、misc 或 all 之一。参数可以缩写为带下划线的字母之一,也就是:s|l|o|t|m|a。
打印调试信息。
打印所有格式说明符。
打印 procps-ng 的版本。
打印 procps-ng 的版本。
打印 procps-ng 的版本。

备注

ps 通过读取 /proc 中的虚拟文件来工作。此 ps 不需要 setuid kmem 或任何其他特权即可运行。不要授予此 ps 任何特殊权限。

CPU 使用率目前表示为进程整个生命周期内处于运行状态的时间的百分比。这种算法并不理想,并且它也不符合 ps 在其他方面所遵守的标准。CPU 使用率加起来不太可能正好是 100%。

SIZE 和 RSS 字段不计算进程的某些部分,包括页表、内核栈、struct thread_info 和 struct task_struct。这些至少占 20 KiB 的驻留内存。SIZE 是进程的虚拟大小(代码+数据+堆栈)。

标记为 <defunct> 的进程是死亡的进程(所谓的 "僵尸进程"),它们之所以保留,是因为它们的父进程没有正确销毁它们。如果父进程退出,这些进程将被 init(8) 销毁。

如果用户名的长度大于显示的列的宽度,则用户名将被截断。请参阅 -o-O 格式选项来自定义长度。

Commands options such as ps -aux are not recommended as it is a confusion of two different standards. According to the POSIX and Unix standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named x. If that user doesn't exist, then ps will assume you really meant "ps aux".

进程标志

下面这些值的总和将显示在 "F" 列中,该列由 flags 输出说明符启用:

1 已由 fork 产生,但未执行 exec
4 使用了超级用户权限

进程状态代码

以下是 sstatstate 输出说明符(表头为 "STAT" 或 "S")显示的各种值,用于描述进程的状态:

D uninterruptible sleep (usually I/O)
I idle kernel thread
R 正在运行或可运行(位于运行队列)
S interruptible sleep (waiting for an event to complete)
T 被任务控制信号停止
t 在追踪过程中被调试器停止
W paging (not valid since Linux 2.6)
X 已死亡(不应出现)
Z defunct (“zombie”) process, terminated but not reaped by its parent

对于 BSD 格式,当使用 stat 关键字时,可能会显示其他字符:

< 高优先级(对其他用户不 nice)
N 低优先级(对其他用户 nice)
L has pages locked into memory (for real-time and custom I/O)
s 是会话头领
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ 在前台进程组中

过时的排序键

These keys are used by the BSD O option (when it is used for sorting). The GNU --sort option doesn't use these keys, but the specifiers described below in the STANDARD FORMAT SPECIFIERS section. Note that the values used in sorting are the internal values ps uses and not the "cooked" values used in some of the output format fields (e.g., sorting on tty will sort into device number, not according to the terminal name displayed). Pipe ps output into the sort(1) command if you want to sort the cooked values.

长名称 描述
c cmd 可执行文件的简单名称
C pcpu CPU 利用率
f flags 长格式的 F 字段中的标志
g pgrp 进程组 ID
G tpgid 控制 tty 的进程组 ID
j cutime 累计用户时间
J cstime 累计系统时间
k utime 用户时间
m min_flt 次要缺页的次数
M maj_flt 主要缺页的次数
n cmin_flt 次要缺页的累计次数
N cmaj_flt 主要缺页的累计次数
o session 会话 ID
p pid 进程 ID
P ppid 父进程 ID
r rss 驻留集大小
R resident 驻留页面数
s size memory size in kibibytes
S share 共享页面数
t tty 控制 tty 的设备号
T start_time 进程启动的时间
U uid 用户 ID 号
u user 用户名
v vsize 总 VM 大小 (KiB)
y priority 内核调度优先级

This ps supports AIX format descriptors, which work somewhat like the formatting codes of printf(1) and printf(3). The NORMAL codes are described in the next section.

代码 标准 表头
%C pcpu %CPU
%G group GROUP
%P ppid PPID
%U user USER
%a args COMMAND
%c comm COMMAND
%g rgroup RGROUP
%n nice NI
%p pid PID
%r pgid PGID
%t etime ELAPSED
%u ruser RUSER
%x time TIME
%y tty TTY
%z vsz VSZ

标准格式说明符

以下是可用于控制输出格式(也就是用于选项 -o),或使用 GNU 风格的 --sort 选项对所选进程进行排序的各种关键字。

例如:ps -eo pid,user,args --sort user

此版本的 ps 尝试识别 ps 其他实现中使用的大多数关键字。

以下用户定义的格式说明符可能包含空格:argscmdcommcommandfnameucmducommlstartbsdstartstart

某些关键字可能不能用于排序。

Code Header Description
%cpu %CPU 进程的 cpu 利用率,格式为 "##.#"。目前的计算方式是使用的 CPU 时间除以进程已运行的时间 (cputime/realtime),以百分比表示。除非您运气好,否则加起来不会是 100%。(别名 pcpu)。
%mem %MEM 进程驻留集大小与机器的物理内存的比值,以百分比表示。(别名 pmem)。
ag_id AGID 与进程关联的自动组标识符,它与 CFS 调度器配合,提高交互式桌面的性能。
ag_nice AGNI 自动组的 nice 值,影响该组中所有进程的调度。
args COMMAND A command with all its arguments as a string. Modifications to the arguments may be shown. The output in this column may contain spaces. A process marked “<defunct>” is partly dead, waiting to be fully destroyed by its parent. Sometimes the process arguments will be unavailable; when this happens, ps instead reports the executable name in brackets. (alias cmd, command). See also the comm format keyword, the -f option, and the c option. When specified last, this column will extend to the edge of the display. If ps can not determine the display width, as when output is redirected (piped) into a file or another command, the output width is undefined (it may be 80, unlimited, determined by the TERM variable, and so on). The COLUMNS environment variable or --cols option may be used to exactly determine the width in this case. The w or -w option may be also be used to adjust width.
blocked BLOCKED 被阻塞的信号的掩码,参见 signal(7)。根据字段的宽度,将显示十六进制格式的 32 位或 64 位掩码,除非使用了 --signames 选项。(别名 sig_blocksigmask)。
bsdstart START 命令开始的时间。如果该进程是在不到 24 小时前启动的,则输出格式为 " HH:MM",否则为 " Mmm:SS"(其中 Mmm 是月份的三个字母)。另请参见 lstart start start_time stime
bsdtime TIME 累计 CPU 时间,用户 + 系统。显示格式通常为 "MMM:SS",但如果进程使用的 CPU 时间超过 999 分钟,则可能被右移。
c C processor utilization. Currently, this is the integer value of the percent usage over the lifetime of the process. (see %cpu).
caught CAUGHT 被捕获的信号的掩码,参见 signal(7)。根据字段的宽度,将显示十六进制格式的 32 或 64 位掩码,除非使用 --signames 选项。(别名 sig_catchsigcatch)。
cgname CGNAME 显示进程所属的控制组的名称。
cgroup CGROUP 显示进程所属的控制组。
cgroupns CGROUPNS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
class CLS 进程的调度类。(别名 policycls)。字段的可能值为: +9n - 未报告 TS SCHED_OTHER FF SCHED_FIFO RR SCHED_RR B SCHED_BATCH ISO SCHED_ISO IDL SCHED_IDLE DLN SCHED_DEADLINE ? 未知值
cls CLS 进程的调度类。(别名 policycls)。字段的可能值为: +9n - 未报告 TS SCHED_OTHER FF SCHED_FIFO RR SCHED_RR B SCHED_BATCH ISO SCHED_ISO IDL SCHED_IDLE DLN SCHED_DEADLINE ? 未知值
cmd CMD 请参阅 args。(别名 argscommand)。
comm COMMAND 命令名称(仅包含可执行文件名称)。此列中的输出可能包含空格。(别名 ucmducomm)。另请参见 args 格式关键字、-f 选项和 c 选项。 当被指定于末尾时,该列将扩展到显示区域的边缘。如果 ps 无法确定显示宽度,例如当输出被重定向(通过管道发送)到文件或另一个命令时,输出宽度是未定义的(可能是 80,无限制,由 TERM 变量确定,等等)。在这种情况下,可以使用 COLUMNS 环境变量或 --cols 选项来精确指定宽度。 w 或  -w 选项也可用于调整宽度。
command COMMAND 请参阅 args。(别名 argscommand)。
cp CP 按毫(千分之一)显示的 CPU 使用率。(参见 %cpu)。
cputime TIME 累计 CPU 时间,"[DD-]hh:mm:ss" 格式。(别名 time)。
cputimes TIME 累计 CPU 时间,以秒为单位(别名 times)。
cuc %CUC The CPU utilization of a process, including dead children, in an extended "##.###" format. (see also %cpu, c, cp, cuu, pcpu).
cuu %CUU 进程的 CPU 利用率,使用扩展的 "##.###" 格式。(另请参见 %cpuccpcucpcpu)。
docker DOCKER The abbreviated id of the docker container within which a task is running. If a process is not running inside a container, a dash ('-') will be shown.
drs DRS data resident set size, the amount of private memory reserved by a process. It is also known as DATA. Such memory may not yet be mapped to rss but will always be included in the vsz amount.
egid EGID 进程的有效组 ID 编号(十进制整数)。(别名 gid)。
egroup EGROUP 进程的有效组 ID。如果可以获得文本组 ID(组名)并且字段宽度允许,则将表示为文本组 ID,否则将表示为十进制数字。(别名 group)。
eip EIP instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is exiting or being core dumped.
esp ESP stack pointer. As of kernel 4.9.xx will be zeroed out unless task is exiting or being core dumped.
etime ELAPSED 自进程启动以来经过的时间,格式为 [[DD-]hh:]mm:ss。
etimes ELAPSED 自进程启动以来经过的时间,以秒计。
environ ENVIRON environment variables for the process.
euid EUID 有效用户 ID(别名 uid)。
euser EUSER 有效用户名称。如果可以获得文本用户 ID(用户名)并且字段宽度允许,则将表示为文本用户 ID,否则将表示为十进制数字。可使用 n 选项强制使用十进制表示形式。(别名 unameuser)。
exe EXE path to the executable. Useful if path cannot be printed via cmd, comm or args format options.
f F 与进程相关的标志。请参阅 进程标志 一节。(别名 flagflags)。
fds FDS total open file descriptors.
fgid FGID 文件系统访问组 ID。(别名 fsgid)。
fgroup FGROUP 文件系统访问组 ID。如果可以获得文本组 ID(组名)并且字段宽度允许,则将表示为文本组 ID,否则将表示为十进制数字。(别名 fsgroup)。
flag F 参见 f。(别名 fflags)。
flags F 参见 f。(别名 fflag)。
fname COMMAND 进程可执行文件的基本名称的前 8 个字节。此列中的输出可能包含空格。
fuid FUID 文件系统访问用户 ID。(别名 fsuid)。
fuser FUSER 文件系统访问用户 ID。如果可以获得文本用户 ID(用户名)并且字段宽度允许,则将表示为文本用户 ID,否则将表示为十进制数字。
gid GID 参见 egid。(别名 egid)。
group GROUP 参见 egroup。(别名 egroup)。
htprv HTPRV The amount of private memory backed by hugetlbfs page which is not counted in the rss or pss format options.
htshr HTSHR The amount of shared memory backed by hugetlbfs page which is not counted in the rss or pss format options.
ignored IGNORED 被忽略的信号的掩码,参见 signal(7)。根据字段的宽度,将显示十六进制格式的 32 或 64 位掩码,除非使用了 --signames 选项。(别名 sig_ignoresigignore)。
ipcns IPCNS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
label LABEL 安全标签,最常用于 SELinux 上下文数据。用于高安全性系统上的 强制访问控制 ("MAC")。
lstart STARTED time the command started. This will be in the form "DDD mmm HH:MM:SS YYY" unless changed by the -D option.
lsession SESSION 如果启用了 systemd 支持,则显示进程的登录会话标识符。
luid LUID 显示与进程关联的登录 ID。
lwp LWP 可分派实体的轻量级进程(线程)ID(别名 spid tid)。请参阅 tid 了解更多信息。
lxc LXC 正在运行任务的 lxc 容器的名称。如果进程未在容器内运行,则会显示短横线 ("-")。
machine MACHINE 如果已启用 systemd 支持,则对于已分配给 VM 或容器的进程,显示机器名。
maj_flt MAJFLT 此进程发生的主要缺页的数量。
min_flt MINFLT 此进程发生的次要缺页的数量。
mntns MNTNS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
netns NETNS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
ni NI nice value. This ranges from 19 (nicest) to -20 (not nice to others), see nice(1). (alias nice).
nice NI 参见 ni。(别名 ni)。
nlwp NLWP 进程的 LWP(线程)数量。(别名 thcount)。
numa NUMA 与最近使用的处理器关联的节点。-1 表示 NUMA 信息不可用。
nwchan WCHAN 进程睡眠时位于的内核函数的地址(如果需要内核函数名称,请使用 wchan)。
oom OOM Out of Memory Score. The value, ranging from 0 to +1000, used to select task(s) to kill when memory is exhausted.
oomadj OOMADJ Out of Memory Adjustment Factor. The value is added to the current out of memory score which is then used to determine which task to kill when memory is exhausted.
ouid OWNER 如果已启用 systemd 支持,则显示进程会话所有者的 Unix 用户标识符。
pcap PCAP Permitted Capabilites of the process, displayed as a hexadecimal bitmask. See capabilities(7).
pcaps PCAPS Permitted Capabilites of the process, displayed as a string of capability names. See capabilities(7).
pcpu %CPU 参见 %cpu。(别名 %cpu)。
pending PENDING mask of the pending signals. See signal(7). Signals pending on the process are distinct from signals pending on individual threads. Use the m option or the -m option to see both. According to the width of the field, a 32 or 64 bits mask in hexadecimal format is displayed, unless the --signames option is used. (alias 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 进程的调度类。(别名 classcls)。可能的值有: +9n - 未报告 TS SCHED_OTHER FF SCHED_FIFO RR SCHED_RR B SCHED_BATCH ISO SCHED_ISO IDL SCHED_IDLE DLN SCHED_DEADLINE ? 未知值
ppid PPID 父进程 ID。
pri PRI 进程的优先级。数字越大意味着优先级越高。
psr PSR 最后执行此进程的处理器。
pss PSS Proportional share size, the non-swapped physical memory, with shared memory proportionally accounted to all tasks mapping it.
rbytes RBYTES Number of bytes which this process really did cause to be fetched from the storage layer.
rchars RCHARS 此任务导致从存储中读取的字节数。
rgid RGID 真实组 ID。
rgroup RGROUP 真实组名称。如果可以获得文本组 ID(组名)并且字段宽度允许,则将显示文本组 ID,否则将显示十进制数字。
rops ROPS Number of read I/O operations—that is, system calls such as read(2) and pread(2).
rss RSS resident set size, the non-swapped physical memory that a task has used (in kibibytes). (alias rssize, rsz).
rssize RSS 参见 rss。(别名 rssrsz)。
rsz RSZ 参见 rss。(别名 rssrssize)。
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 和 SCHED_DEADLINE 分别显示为 0, 1, 2, 3, 4, 5 和 6。
seat SEAT 如果已启用 systemd 支持,则显示与分配给特定工作场所的所有硬件设备关联的标识符。
sess SESS 会话 ID,等价于会话头领的进程 ID。(别名 sessionsid)。
sgi_p P 当前正在执行该进程的处理器。如果进程当前不处于 "运行中" 或 "可运行" 状态,则显示 "*"。
sgid SGID 保存组 ID。(别名 svgid)。
sgroup SGROUP 保存组名称。如果可以获得文本组 ID(组名)并且字段宽度允许,则将显示文本组 ID,否则将显示十进制数字。
sid SID 参见 sess。(别名 sesssession)。
sig PENDING 参见 pending。(别名 pendingsig_pend)。
sigcatch CAUGHT 参见 caught。(别名 caughtsig_catch)。
sigignore IGNORED 参见 ignored。(别名 ignoredsig_ignore)。
sigmask BLOCKED 参见 blocked。(别名 blockedsig_block)。
size SIZE 假设进程弄脏所有可写页面然后被换出,所需要的大致的交换空间量。这个数字非常粗略!
slice SLICE 如果已启用 systemd 支持,则显示进程所属的切片单元 (slice unit)。
spid SPID 参见 lwp。(别名 lwptid)。
stackp STACKP 进程的栈的底部(起始位置)的地址。
start STARTED 命令开始的时间。如果该进程是在不到 24 小时前启动的,则输出格式为 "HH:MM:SS",否则为 "  Mmm dd"(其中 Mmm 是三个字母的月份名称)。另请参见 bsdstartstartstart_timestime
start_time START 进程开始的时间或日期。如果进程不是在调用 ps 的同一年启动,则仅显示年份,如果不是在同一天启动,则显示 "MmmDD",否则显示 "HH:MM"。另请参见 bsdstartstartlstartstime
stat STAT 多个字符的进程状态。请参阅 进程状态代码 一节了解不同值的含义。如果您只想显示第一个字符,请参见 sstate
state S 参见 s。(别名 s)。
stime STIME see start_time. (alias start_time).
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 进程核心映像的大小,以物理页的数量表示。这包括文本、数据和栈的空间。目前不包括设备映射;这在将来可能发生变化。请参阅 vszrss
tgid TGID 表示任务所属的线程组的数字(别名 pid)。它是线程组头领的进程 ID。
thcount THCNT 参见 nlwp。(别名 nlwp)。进程拥有的内核线程数。
tid TID 表示可分派实体的唯一编号(别名 spidtid)。该值也可能显示为:进程 ID (pid);进程组 ID (pgrp);会话头领的会话 ID (sid);线程组头领的线程组 ID (tgid);以及进程组头领的 tty 进程组 ID (tpgid)。
time TIME 累计CPU 时间,"[DD-]HH:MM:SS" 格式。(别名 cputime)。
timens TIMENS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
times TIME 累计 CPU 时间(以秒为单位)(别名 cputimes)。
tname TTY 控制 tty(终端)。(别名 tttty)。
tpgid TPGID 进程连接到的 tty(终端)上的前台进程组的 ID,如果进程未连接到 tty,则为 -1。
trs TRS text resident set size, the amount of physical memory devoted to executable code.
tt TT 控制 tty(终端)。(别名 tnametty)。
tty TT 控制 tty(终端)。(别名 tnamett)。
ucmd CMD 参见 comm。(别名 commucomm)。
ucomm COMMAND 参见 comm。(别名 commucmd)。
uid UID 参见 euid。(别名 euid)。
uname USER 参见 euser。(别名 euseruser)。
unit UNIT 如果已启用 systemd 支持,则显示进程所属的单元。
user USER 参见 euser。(别名 euseruname)。
userns USERNS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
uss USS 唯一集大小,不与另一个任务共享的非交换物理内存的大小。
utsns UTSNS 用来描述进程所属命名空间的唯一 inode 编号。请参阅 namespaces(7)
uunit UUNIT 如果已启用 systemd 支持,则显示进程所属的用户单元。
vsize VSZ 参见 vsz。(别名 vsz)。
vsz VSZ 进程的虚拟内存大小,以 KiB(1024 字节)为单位。目前不包括设备映射; 这在将来可能会发生变化。(别名 vsize)。
wbytes WBYTES 此进程导致的发送到存储层的字节数。
wcbytes WCBYTES 取消的写入字节数。
wchan WCHAN 进程休眠时位于的内核函数的名称。
wchars WCHARS Number of bytes which this task has caused, or shall cause to be written to disk.
wops WOPS Number of write I/O operations—that is, system calls such as write(2) and pwrite(2).

环境变量

以下环境变量可以影响 ps

覆盖默认显示宽度。
覆盖默认显示高度。
Set to one of posix, old, linux, bsd, sun, digital... (see section PERSONALITY below).
Set to one of posix, old, linux, bsd, sun, digital... (see section PERSONALITY below).
强制使用过时的命令行解释方式。
日期格式。
将其设置为任意值,以隐藏通常在使用 -e 选项时显示的内核线程。这等价于选定 --ppid 2 -p 2 --deselect。在 BSD 模式下也可以使用。
当前不支持。
覆盖默认输出格式。您可以将其设置为 -o 选项使用的格式字符串。值 DefSysVDefBSD 特别有用。
不要找借口忽略一些不好的 "特性"。
当设置为 "on" 时,等同于 POSIXLY_CORRECT
不要找借口忽略一些不好的 "特性"。
_XPG
取消 CMD_ENV=irix 的不标准行为。

一般来说,设置这些变量是糟糕的想法。一个例外是 CMD_ENVPS_PERSONALITY,对于普通系统,可以将其设置为 Linux。如果没有这个设置,ps 就会遵循 Unix98 标准中无用和糟糕的部分。

特色

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 Open Edition ps
posix 标准
s390 类似 OS/390 Open Edition 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 标准

错误

字段 bsdstartstart 显示的月份名称缩写仅支持英文。字段 lstartstime 将使用已配置的区域设置显示月份名称缩写,但由于不同语言的月份缩写和日期名称的长度不同,可能会超出列宽。

参见

pgrep(1), pstree(1), top(1), strftime(3), proc(5), capabilities(7).

标准

This ps conforms to the following standards.

Single Unix Specification,第 2 版
The Open Group Technical Standard Base Specifications,第 6 期
IEEE Std 1003.1,2004 版
X/Open System Interfaces Extension [UP XSI]
ISO/IEC 9945:2003

作者

ps was originally written by Branko Lankester. Michael K. Johnson re-wrote it significantly to use the proc filesystem, changing a few things in the process. Michael Shields added the pid-list feature. Charles Blake added multi-level sorting, the dirent-style library, the device name-to-number mmaped database, the approximate binary search directly on System.map, and many code and documentation cleanups. David Mossberger-Tang wrote the generic BFD support for psupdate. Albert Cahalan rewrote ps for full Unix98 and BSD support, along with some ugly hacks for obsolete and foreign syntax.

请将错误报告发送到 procps@freelists.org。 不需要也不建议订阅。

2024-09-17 procps-ng