linux_ps命令的详细说明(man ps)_全网最全解释

ps命令的详细说明(man ps)_全网最全解释

名称

ps - 报告当前进程的快照。

概要

ps [选项]

描述

ps显示关于选定活动进程的信息。如果您希望持续更新所选进程的信息,可以使用top命令。

该版本的ps接受多种选项类型:

  1. UNIX选项:可以组合使用,必须以短横线(-)开头。
  2. BSD选项:可以组合使用,不需要以短横线开头。
  3. GNU长选项:以两个短横线(–)开头。

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

需要注意的是,ps -auxps 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选择。与-pp相同。

  • --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选择(快速模式)。与-qq相同。

  • -s sesslist
    按会话ID选择。选择会话ID在sesslist中的进程。

  • --sid sesslist
    按会话ID选择。与-s相同。

  • t ttylist
    按终端选择。几乎与t--tty相同,但也可以与空的ttylist一起使用,以指示与ps关联的终端。使用T选项被认为比使用t带有空ttylist更简洁。

  • -t ttylist
    按终端选择。选择与给定ttylist中的终端相关联的进程。终端(ttys或用于文本输出的屏幕)可以以多种形式指定:/dev/ttyS1ttyS1S1。可以使用一个简单的-来选择未附加到任何终端的进程。

  • --tty ttylist
    按终端选择。与-tt相同。

  • 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)或名称选择。与-uU相同。

继续翻译文档的下一部分内容:


输出格式控制

这些选项用于选择ps显示的信息。输出可能因系统的"personality"不同而有所变化。

  • -c
    显示不同的调度信息,用于-l选项。

  • --context
    显示安全上下文格式(适用于SELinux)。

  • -f
    显示完整格式的列表。此选项可以与许多其他UNIX样式选项结合使用,以添加额外的列。它还会显示命令参数。与-L一起使用时,将添加NLWP(线程数量)和LWP(线程ID)列。参见c选项、格式关键字args和格式关键字comm

  • -F
    显示额外的完整格式。参见-f选项,-F暗示-f

  • --format format
    用户定义的格式。与-oo相同。

  • 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的列,也可能是两列,分别名为XY。有疑问时请使用多个-o选项。使用PS_FORMAT环境变量来根据需要指定默认值;DefSysVDefBSD是可用于选择默认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使用此选项在每页输出上打印标题,但旧的Linux ps使用此选项完全禁用标题。本版本的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
    WCHANUSER(包括所有类型的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
    显示线程,可能带有LWPNLWP列。

  • m
    在进程后显示线程。

  • -m
    在进程后显示线程。

  • -T
    显示线程,可能带有SPID列。

接下来的部分包括“其他信息”、“进程标志”、“进程状态代码”以及“标准格式说明符”等内容的翻译。


其他信息

  • --help section
    打印帮助信息。section参数可以是simplelistoutputthreadsmiscall中的一个。参数可以缩写为这些单词的首字母,如slotma

  • --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%。

  • SIZERSS字段不包括进程的一些部分,包括页表、内核栈、struct thread_infostruct task_struct。这通常是至少20 KiB的内存,总是常驻的。SIZE是进程的虚拟大小(代码+数据+栈)。

  • 标记为<defunct>的进程是死进程(通常称为“僵尸”进程),它们仍然存在是因为其父进程未能正确销毁它们。如果父进程退出,这些进程将被init(8)销毁。

  • 如果用户名的长度大于显示列的长度,则显示数值用户ID。

  • ps -aux这样的命令选项并不推荐使用,因为它混淆了两种不同的标准。根据POSIX和UNIX标准,上述命令要求显示所有具有TTY的进程(通常是用户正在运行的命令)以及所有由名为x的用户拥有的进程。如果该用户不存在,则ps将假定您实际上是想执行ps aux命令。

进程标志

这些值的总和显示在标志输出说明符的“F”列中:

  • 1 派生(fork)但未执行(exec)
  • 4 使用超级用户权限

进程状态代码

以下是sstatstate输出说明符(标题为“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 进程组ID
  • G tpgid 控制终端进程组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 以千字节为单位的内存大小
  • 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实现中使用的大多数关键字。

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

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

  • CODE HEADER DESCRIPTION

  • %cpu %CPU 进程的CPU利用率,以“##.#”格式表示。目前,它是进程使用的CPU时间除以进程运行的时间(cputime/realtime比率),以百分比表示。除非幸运,否则它不会加起来达到100%。(别名:pcpu)。

  • %mem %MEM 进程的常驻集大小与机器物理内存的比例,以百分比表示。(别名:pmem)。

  • args COMMAND 命令及其所有参数的字符串。可能会显示对参数的修改。此列中的输出可能包含空格。标记为<defunct>的进程是部分死亡的,等待被其父进程完全销毁。有时进程的args将不可用;当这种情况发生时,ps将改为显示括号内的可执行文件名称。(别名:cmdcommand)。另请参见comm格式关键字、-f选项和c选项。
    当最后指定时,此列将扩展到显示的边缘。如果ps无法确定显示宽度,例如当输出被重定向(通过管道)到文件或另一个命令时,输出宽度是未定义的(可能为80、无限制、由TERM变量决定等)。可以使用COLUMNS环境变量或--cols选项在这种情况下准确确定宽度。w-w选项也可以用来调整宽度。

  • blocked BLOCKED 被阻止的信号的掩码,参见signal(7)。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig_blocksigmask)。

  • bsdstart START 命令启动的时间。如果进程是在过去24小时内启动的,输出格式为“HH:MM”;否则输出格式为“Mmm:SS”(其中Mmm为月份的三个字母)。另请参见lstartstartstart_timestime

  • bsdtime TIME 累计的CPU时间,用户时间加系统时间。显示格式通常为“MMM:SS”,但如果进程使用了超过999分钟的CPU时间,则可能会向右移位。

  • c C 处理器利用率。当前,这是进程生命周期内百分比使用的整数值。(参见%cpu)。

  • caught CAUGHT 捕获的信号的掩码,参见signal(7)。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig_catchsigcatch)。

  • cgroup CGROUP 显示进程所属的控制组。

  • class CLS 进程的调度类别。(别名:policycls)。字段的可能值为:

    • - 未报告
    • TS SCHED_OTHER
    • FF SCHED_FIFO
    • RR SCHED_RR
    • B SCHED_BATCH
    • ISO SCHED_ISO
    • IDL SCHED_IDLE
    • ? 未知值
  • cmd CMD 参见args。(别名:argscommand)。

  • comm COMMAND 命令名称(仅可执行文件名称)。命令名称的修改将不会显示。标记为<defunct>的进程是部分死亡的,等待被其父进程完全销毁。此列中的输出可能包含空格。(别名: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)。

  • 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选项可用于强制显示十进制表示。(别名:unameuser)。

  • f F 与进程关联的标志,参见"进程标志"部分。(别名:flagflags)。

  • 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)。

  • ignored IGNORED 被忽略的信号的掩码,参见signal(7)。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名:sig_ignoresigignore)。

  • ipcns IPCNS 描述进程所属命名空间的唯一inode号。参见namespaces(7)

  • label LABEL 安全标签,最常用于SELinux上下文数据。此字段用于高安全系统上的强制访问控制(MAC)。

  • lstart STARTED 命令启动的时间

。另请参见bsdstartstartstart_timestime

  • lsession SESSION 显示进程的登录会话标识符(如果包含了systemd支持)。

  • lwp LWP 可调度实体的轻量级进程(线程)ID(别名:spidtid)。参见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 进程的调度类别。(别名:classcls)。可能的值为:

    • - 未报告
    • 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 常驻集大小,即任务使用的未交换物理内存(以千字节为单位)。(别名:rssizersz)。

  • 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_OTHERSCHED_NORMAL)、SCHED_FIFOSCHED_RRSCHED_BATCHSCHED_ISOSCHED_IDLE分别显示为012345

  • 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支持)。

  • spid SPID 参见lwp。(别名:lwptid)。

  • stackp STACKP 进程的栈底(起始)地址。

  • start STARTED 命令启动的时间。如果进程是在过去24小时内启动的,输出格式为“HH:MM:SS”;否则输出格式为“ Mmm dd”(其中Mmm为月份的三个字母)。另请参见lstartbsdstartstart_timestime

  • start_time START 进程的启动时间或日期。如果进程不是在调用ps的同一年启动的,则只显示年份;如果不是在同一天启动的,则显示为MmmDD;否则,显示为HH:MM。另请参见bsdstartstartlstartstime

  • stat STAT 多字符进程状态。有关不同值的含义,请参见"进程状态代码"部分。如果您只想显示第一个字符,请参见sstate

  • 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 进程核心镜像的物理页面大小。这包括文本、数据和栈空间。设备映射目前被排除在外;这一点可能会改变。参见vszrss

  • tgid TGID 表示任务所属线程组的数字(别名:pid)。这是线程组领导者的进程ID。

  • thcount THCNT 参见nlwp。(别名:nlwp)。内核线程数量,归属于进程。

  • tid TID 表示可调度实体的唯一数字(别名:lwpspid)。此值也可能显示为:进程ID(pid);进程组ID(pgrp);会话ID(对于会话领导者);线程组ID(对于线程组领导者);以及tty进程组ID(对于进程组领导者)。

  • time TIME 累计的CPU时间,以“[DD-]HH:MM:SS”格式显示。(别名:cputime)。

  • tname TTY 控制终端(终端)。(别名:tttty)。

  • tpgid TPGID 连接到进程的终端(tty)上的前台进程组ID,如果进程未连接到终端,则为-1

  • trs TRS 文本常驻集大小,即分配给可执行代码的物理内存量。

  • tt TT 控制终端(终端)。(别名:tnametty)。

  • tty TT 控制终端(终端)。(别名: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)

  • 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
    设置为posixoldlinuxbsdsundigital等之一(参见下文的“personality”部分)。

  • CMD_ENV
    设置为posixoldlinuxbsdsundigital等之一(参见下文的“personality”部分)。

  • I_WANT_A_BROKEN_PS
    强制使用过时的命令行解释。

  • LC_TIME
    日期格式。

  • PS_COLORS
    目前不支持。

  • PS_FORMAT
    默认输出格式覆盖。您可以将其设置为-o选项使用的格式字符串。DefSysVDefBSD值特别有用。

  • PS_SYSMAP
    默认namelist(System.map)位置。

  • PS_SYSTEM_MAP
    默认namelist(System.map)位置。

  • POSIXLY_CORRECT
    不找借口忽略错误的“功能”。

  • POSIX2
    设置为“on”时,表现得像POSIXLY_CORRECT

  • UNIX95
    不找借口忽略错误的“功能”。

  • _XPG
    取消CMD_ENV=irix的非标准行为。

通常情况下,不建议设置这些变量。唯一的例外是CMD_ENVPS_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符合以下标准:

  1. 单一Unix规范的第2版
  2. 开放组技术标准基础规范,第6期
  3. IEEE Std 1003.1, 2004 Edition
  4. X/Open系统接口扩展 [UP XSI]
  5. 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惊鸿一博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值