Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Is there a way to sort ps output by process start time, so newest are either at the top or bottom ?

On Linux ?

On SysV5 ?

On Mac ?

share|improve this question

4 Answers 4

up vote 27 down vote accepted

This should work on Linux and SysV5

ps -ef --sort=start_time
share|improve this answer
    
This works exactly as requested, thanks. After more digging I am not sure this is possible on Mac OS without a bit of awk –  Dean Smith Jun 18 '09 at 9:50

Linux:

$ ps aux --sort=lstart

OSX:

$ ps aux -O started
share|improve this answer
1  
I'm afraid neither of those sorts by start time. It does display the start time, but doesn't sort. –  Dean Smith Jun 18 '09 at 9:45
    
The difference between lstart and start_time caught me out as well -- lstart gives a full timestamp, but cannot be used as a sort key. start_time gives the usual 'time within the last 24 hours, date otherwise' column, and can be used as a sort key. Both give 'STARTED' in the header. –  LHMathies Apr 5 '12 at 8:22
    
time within last hour: if a process was launched yesterday at a time later than today, it will appear after today's process ... can't be used by sort, unless a bit of "awk" changes that –  Olivier Dulac May 22 '13 at 10:16

Along with the great answers above, sometimes I just want to see the top 20 offenders by process sorted descending by time, cpu% and memory usage.

For that I use:

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

This would be on a CentOS platform, though I've enjoyed the same results on Fedora as well.

Oh and for grins, I sometimes want to remove a set of processes, so I simply use a variant on the above that includes a bit of grep -v action, such as:

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

Or try 'ls', as it allows time formats that are easy to sort, and easier to use.

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

Outputs the date/time in epoch, newest procs at the top.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.