如果执行ps -p 3384 3395
(观察-p
为小写)则输出如下:
PID TTY STAT TIME COMMAND
3384 tty6 S+ 0:00 man ls
3395 tty6 S+ 0:00 pager
到这里为止一切都很好并且是预期的。
只是错误地被执行了ps -P 3384 3395
(观察-P
是大写)则输出如下:
PID PSR TTY STAT TIME COMMAND
3384 2 tty6 S+ 0:00 man ls
3395 3 tty6 S+ 0:00 pager
观察此输出中出现一个新标头 - 它是PSR
问题
-P
命令上下文中的含义是什么ps
?
是的,我已经阅读了这两篇文章man ps
,并且选项/参数ps --help all
的文档-p
分别如下:
# Approach 1
p pidlist
Select by process ID. Identical to -p and --pid.
-p pidlist
Select by PID. This selects the processes whose process ID numbers appear in pidlist.
Identical to p and --pid.
# Approach 2
-p, p, --pid <PID> process id
--ppid <PID> parent process id
但似乎-P
并没有什么。老实说,当ps
命令执行时-P
- 理论上我预计会出现错误,因为-P
不存在,因为-P
没有记录。
额外问题
- 如果
-P
理论上不存在,因为没有记录,为什么没有抛出错误? - 这是什么
PSR
意思?
答案1
我不知道为什么-P
没有记录。我想知道该功能是否在过去某个时候没有得到完全支持?
-P
(或-o psr
) 将输出设置为包含PSR
,手册中指出:
psr PSR processor that process is currently assigned to.
有一个评论在 ps 的帮助代码中,提示-P
“缺少”帮助。回到我能找到的最初签入,其他几个标志曾经如此标记(包括-c
、-L
和-M
)。这是我在帮助页面中看到的唯一一个仍被列为缺失的“破折号”选项。
答案2
它指示当前正在使用哪个处理器来执行该进程。尽管该-P
选项没有记录,但在 的联机帮助页中PSR
进行了描述。STANDARD FORMAT SPECIFIERS
ps