进一步阅读

进一步阅读

ps和列出的流程有何区别ps -A

答案1

如果没有-A,ps 将仅打印属于当前会话的进程。可以将其视为“绝对一切”。相关说明-a执行相同的操作,但将其限制为会话所有者(用户名)。

答案2

GNUps命令患有严重的多重人格障碍。因此,它的手册页令人困惑也就不足为奇了。也许看看 BSD 手册可能会有所帮助。毕竟,这个问题标签

ps如果记住以下两点,BSD 的操作就会相当简单:

  • 使用两个基本过滤器来选择要显示的进程。这些过滤器是默认情况下,命令行选项会将它们离开. 朴素的质朴ps就这样通过两者过滤了。
  • BSD 语法历史悠久。尽管现代 BSD 使用getopt以减号为前缀的选项惯例,但此处相关的选项和行为与 30 年前大致相同。

这个行为是这样的:

  • -a(历史上的a)选择关掉所有“选择器”过滤。
    • 其他各种命令行选项指定选择器:-U按 UID 选择、-t按控制终端名称选择、-p按进程 ID 选择等等。所有这些都被 绕过-a
    • 如果没有明确提供选择器,默认选择器是仅显示与调用 的用户具有相同有效 UID 的进程ps。此默认选择器是此选项关闭的历史过滤器。
  • -x(历史上的x)选择关掉ps仅显示具有控制终端的进程的限制。

从历史上看,BSDps没有这个A选项。但现代 BSD 实现了一个-A选项,也可以用作A,以便与(后来的)单一 UNIX 规范(在一定程度上)兼容。 与同时使用和-A完全一样:它会关闭两个限制,只留下一个限制,所有进程均不经过过滤。-a-x

OpenBSD 和 NetBSD 记录了该-A选项,在 NetBSD 的情况下明确为-a -x。FreeBSD 没有,但源代码中的注释指出它是一个故意未记录的 SUSv5 兼容性选项。

进一步阅读

  • ps1983-04-13。4.2BSD 手册页。
  • psOpenBSD 手册页。
  • ps2009-10-22。NetBSD 手册页。
  • ps2014-08-07。FreeBSD 手册页。

相关内容