如何按进程开始时间对 ps 输出进​​行排序?

Dea*_*ith 82 linux unix command-line-interface mac-osx process

有没有办法按进程开始时间对 ps 输出进​​行排序,所以最新的是在顶部或底部?

在 Linux 上?

在 SysV5 上?

在 Mac 上?

Sek*_*nre 115

这应该适用于 Linux 和 SysV5

ps -ef --sort=start_time
Run Code Online (Sandbox Code Playgroud)

  • @PhuNguyen 参加聚会有点晚,但也许其他人对此有用。您可以通过通过 `tac` 管道输出来颠倒顺序。 (2认同)

rkt*_*hkr 12

Linux:

$ ps aux --sort=lstart 
Run Code Online (Sandbox Code Playgroud)

操作系统:

$ ps aux -O started
Run Code Online (Sandbox Code Playgroud)

  • lstart 和 start_time 之间的差异也吸引了我——`lstart` 给出了完整的时间戳,但不能用作排序键。`start_time` 给出通常的“过去 24 小时内的时间,否则为日期”列,并且可以用作排序键。两者都在标题中给出“STARTED”。 (4认同)
  • 恐怕这两种都不是开始时间。它确实显示开始时间,但不排序。 (3认同)
  • lstart 对我不起作用。start_time 做到了。 (2认同)

小智 5

除了上面的好答案之外,有时我只想查看按时间、cpu% 和内存使用率降序排列的进程排名前 20 位的违规者。

为此,我使用:

ps auxww --sort=lstart | sort -r -k3,4 | head -20
Run Code Online (Sandbox Code Playgroud)

这将在 CentOS 平台上进行,尽管我在 Fedora 上也获得了相同的结果。

哦,对于咧嘴笑,我有时想删除一组进程,所以我只是使用上面的一个变体,其中包括一些 grep -v 操作,例如:

ps auxww --sort=lstart | sort -r -k3,4 | grep -v "sbin/httpd" | head -20
Run Code Online (Sandbox Code Playgroud)