有没有一种方法可以按进程开始时间对ps输出进行排序,所以最新的输出在顶部还是底部?

在Linux上吗? br />在Mac上吗?

#1 楼

这应该可以在Linux和SysV5上运行。

ps -ef --sort=start_time


评论


完全按照要求运行,谢谢。经过更多的挖掘,我不确定在Mac OS上没有一点awk的可能性

–迪恩·史密斯
09年6月18日在9:50

start_time工作。 lstart没有。 RHEL

–Felipe Alvarez
2015年3月6日5:22



如何取消订单?

–阮玉
16-09-26在11:30

@PhuNguyen参加聚会有点晚,但也许有人对此有用。您可以通过tac用管道输送输出来颠倒顺序。

– Paul
17-10-23在22:28



@Stephane尝试以下操作:观看“ ps -ef --sort = start_time | grep -v kworker | tail”

– Sekenre
19年7月25日在10:37

#2 楼

Linux:

$ ps aux --sort=lstart 


OSX:

$ ps aux -O started


评论


恐怕这些都不是开始时间。它确实显示开始时间,但不排序。

–迪恩·史密斯
09年6月18日在9:45

lstart和start_time之间的差异也使我感到困惑-lstart提供了完整的时间戳,但不能用作排序键。 start_time会提供通常的“过去24小时内的时间,否则为日期”列,并且可用作排序键。两者都在标题中给出“ STARTED”。

–LHMathies
2012年4月5日在8:22

最后一小时内的时间:如果某个流程是在昨天晚于今天的某个时间启动的,则它将在今天的流程之后出现...无法按排序使用,除非进行一些“棘手”更改

–奥利维尔·杜拉克(Olivier Dulac)
13年5月22日在10:16

@OlivierDulac:不适合我。 15/12 15:40出现在16/12 15:39之前,就像13:39出现在15:38之前一样。

–Gauthier
2014-12-16 14:41

lstart对我不起作用。 start_time完成了。

–Felipe Alvarez
2015年3月6日在5:21



#3 楼

除了上述出色的答案外,有时我只想按进程,时间,cpu%和内存使用率的降序来查看前20名违规者。为此,我使用:

ps auxww --sort=lstart | sort -r -k3,4 | head -20


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

呵呵,对于笑容,有时我想删除一个进程集,因此我仅在上面使用了一个变体,其中包含一些grep -v操作,例如:

ps auxww --sort=lstart | sort -r -k3,4 | grep -v "sbin/httpd" | head -20


评论


--ps排序对我不起作用。依靠外壳排序。 +1

–海藻
15年1月25日在11:32

#4 楼

我还不能发表评论,但要回答有关如何反转时间排序顺序的问题,只需在字段前面放置减号(-)。
示例:ps -elf --sort=-start_time

#5 楼

或尝试使用“ ls”,因为它允许更容易排序和使用的时间格式。

( cd /proc; ls -td --full-time --time-style=+%s [0123456789]*; )


以新的时间输出日期/时间,最新时间为顶部。

评论


这只显示pids

–elig
19年8月11日在5:07

#6 楼

尝试简单的命令:

ps | sort -k7 -n


-k7表示时间列,-n表示数值。

示例

#7 楼

我知道它是过时的语法,但是为了简洁起见,我觉得它很实用:

ps OT <other_options>


例如:

ps OT ax