进一步阅读

进一步阅读

在 Linux 中ps输出:

UID          PID    PPID  C STIME TTY          TIME CMD

ps -lu在 FreeBSD 中,类似但不一样的输出可以通过或命令来实现ps -ju。后者的问题是很难解析,因为命令可能包含嵌入在输出中间的空格:

UID   PID  PPID  C PRI NI   VSZ  RSS MWCHAN   STAT TT       TIME COMMAND          USER  %CPU %MEM STARTED

或者

USER   PID  PPID  PGID   SID JOBC STAT TT       TIME COMMAND           %CPU %MEM   VSZ  RSS STARTED

man ps不是很清楚,但它包含一些可能意味着可以更改输出的信息。谁能解释这是否可能?

答案1

由于您提到由于命令中可能包含空格而导致解析输出的问题ps,我假设您希望在FreeBSD 上的或输出COMMAND列右侧的列中包含某些内容。ps -lups -ju

该列右侧的唯一数据也在Linux 上COMMAND的输出中(不像您所说的那样简单),是命令的开始时间。如果这不是您想要的,请更新您的问题。ps -fps

因此,假设您想要命令的开始时间,您可以使用,例如

ps -opid,start,command

...在 FreeBSD 上仅获取PIDSTARTED和字段。COMMAND

例子:

$ ps -opid,start,command -p $(pgrep -x mosh-server)
 PID STARTED COMMAND
1964 13:06   mosh-server new -c 8 -s -l LC_CTYPE=UTF-8
2059 13:08   mosh-server new -c 8 -s -l LC_CTYPE=UTF-8

您显然可以根据需要更改字段的顺序或添加和删除字段。

手册KEYWORDS的部分ps(1)在您的 FreeBSD 系统上获取可用字段的列表。

答案2

-o是单一 Unix 规范标准选项,ps可让您准确控制输出哪些字段。

$ /bin/ps -ouid,pid,ppid,lstart,tty,time,args $$
 UID   PID  PPID STARTED                  TTY      TIME COMMAND
1001 40585 40133 Sat 27 May 21:59:32 2023 pts/3 0:00.03 yash -o posix
$

在 FreeBSD 的输出中,记帐命令名称、参数、环境、开始时间和其他几个字段都可以包含空格ps。事实上,对于ps基于 Linux 的操作系统上的propcps 来说也是如此。在一般情况下,标准的输出ps不可被机器解析。它是一种人类可读的格式。

因为我实际上想要机器可解析性,所以我写了一个ps它的输出机器可解析。这些字段保证只包含图形字符,并且由一个制表符分隔。这是发送到awk -F'\t'其他事物的理想选择。具有讽刺意味的是,这使得我可以更轻松地选择我想要查看的进程表的哪些部分,因为可以执行比、和awk更复杂的过滤器。-A-a-x

$ ps -ouid,pid,ppid,stime,tty,time,args -p $$
UID     PID     PPID    STIME   TT      TIME    COMMAND
1001    40585   40133   2023-05-27\04021:59:32\040+0100 pts/3   \0400.031421s   yash\040-o\040posix
$

当然,我总是可以通过管道来unvis获取人类可读的形式,因为这只是 FreeBSD 编码之一vis

$ ps -ouid,pid,ppid,stime,tty,time,args -p $$ | unvis
UID     PID     PPID    STIME   TT      TIME    COMMAND
1001    40585   40133   2023-05-27 21:59:32 +0100       pts/3    0.032331s      yash -o posix
$

尽管我通常做的是在脚本中循环运行它,通过管道awk选择通常有趣的进程,然后进入console-flat-table-viewer.

进一步阅读

  • ps。命令。小吃指南。乔纳森·德博因·波拉德。
  • console-flat-table-viewer。命令。小吃指南。乔纳森·德博因·波拉德。

相关内容