How to display processes which have been running for more than a X hours?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to display processes which have been running for more than a X hours?
# 1  
Old 03-06-2019
How to display processes which have been running for more than a X hours?

Hi,

Is it possible to display processes which have been running for more than a 5hrs using a variation of the ps -ef command?

Regards,

Manny
# 2  
Old 03-06-2019
The ps command output varies per platform, so could you specify what OS you are using?

On Linux you could try:
Code:
ps -eo pid,etimes | awk '$2/3600>=5{print $1}'

# 3  
Old 03-06-2019
Code:
ps -eo pid,etime

and the "no header" variant
Code:
ps -e -o pid= -o etime=

are quite portable (Posix standard).
The usual output format for times is D-HH:MM:SS
where the D- (=days) prefix is only printed if D > 0
This User Gave Thanks to MadeInGermany For This Post:
# 4  
Old 03-07-2019
Sorry, i should have said, this command needs to run on a unix (solaris) operating system.

Thanks.
# 5  
Old 03-07-2019
Quote:
Originally Posted by mantas44
Sorry, i should have said, this command needs to run on a unix (solaris) operating system.

Thanks.
So, since you're using a Solaris/SunOS system, instead of using:
Code:
ps -eo pid,etime

and the "no header" variant
Code:
ps -e -o pid= -o etime=

use:
Code:
/usr/xpg4/bin/ps -eo pid,etime

and the "no header" variant
Code:
/usr/xpg4/bin/ps -e -o pid= -o etime=

# 6  
Old 03-07-2019
Have to add that even the HH: is usually omitted if HH is zero.
A suitable postprocessing with awk:
Code:
ps -e -o pid= -o etime= | /usr/xpg4/bin/awk '{ n=split($NF, A, /[-:]/); seconds=(A[n]+60*(A[n-1]+60*(A[n-2]+24*A[n-3]))) } (seconds > 5*3600) { print $1 }'

The { print $1 } prints only the pids.
Another example with two more columns and printing everything:
Code:
ps -e -o pid= -o user= -o args= -o etime= | /usr/xpg4/bin/awk '{ n=split($NF, A,  /[-:]/); seconds=(A[n]+60*(A[n-1]+60*(A[n-2]+24*A[n-3]))) } (seconds > 5*3600)'

BTW Sun made the /usr/bin/ps Posix compliant; there is no /usr/xpg4/bin/ps. But df, find, awk, and >60 more Posix compliant commands live in /usr/xpg4/bin/

Last edited by MadeInGermany; 03-07-2019 at 10:18 AM.. Reason: $NF and another example.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to check the processes running longer than 2 hours.?

HI can someone help me to check the process running more than 2 hours. I have the below command which shows the time and process id, however, I only need the processes running more than 2 hours. (8 Replies)
Discussion started by: Vinod
8 Replies

2. UNIX for Dummies Questions & Answers

At command not running out of hours

Hi All, new to the forum and new to Unix but I have an issue which is annoying on a new level. I have included a short and full version for anyone needing more information. Short Version I am running a set of scripts that work and run fine. one of the scripts arranges the first... (4 Replies)
Discussion started by: Delboy4000
4 Replies

3. Shell Programming and Scripting

Print only processes running for more than 24 hours

How can I print ONLY processes running for more than 24 hours. Using ps command or any other method I use this to get a whole list. ps -eo pid,pcpu,pmem,user,args,etime,cmd --sort=start_time We can also sort the outout of the above command to list processes older than 24 hours using... (9 Replies)
Discussion started by: anil510
9 Replies

4. Shell Programming and Scripting

Display date from twelve hours ago

HI Guys I want to create date folder in unix base on currant date minus 12 hours. Ex: Currant date :07222013 and time is 1 Am So the folder will create date :07212013 (6 Replies)
Discussion started by: pareshkp
6 Replies

5. UNIX for Dummies Questions & Answers

find the no of processes that ran 2 hours before or earlier

Is there a way to find out the total no of processes that were running ? - 2 or 3 hours before - list those no of processes (3 Replies)
Discussion started by: jansat
3 Replies

6. Shell Programming and Scripting

List of Running Jobs In Last 4 Hours

Hi Experts, Please help me in this. I am trying this code on AIX 5.3. I need list of jobs that executed in last 4 hours. I have a schedule on this script - cron executes it and sends mail to me for every 2 hours. I have a Job time and have around 100 jobs those execute daily. What all i need... (2 Replies)
Discussion started by: rajubollas
2 Replies

7. Shell Programming and Scripting

Capture the running process for 2 hours

Hi, How can i capture the running process for 2 hours. Thanks in advance.:b: (1 Reply)
Discussion started by: sarathkumar
1 Replies

8. Shell Programming and Scripting

Capture running process or 2 hours with an interval of 10 sec

Hi, Can any one help me on this. How to capture the running process for two hours with an interval of 10 sec. Thanks in andvance (1 Reply)
Discussion started by: sarathkumar
1 Replies

9. UNIX for Dummies Questions & Answers

Capture running process for 2 hours with an interval of 10 sec

Hi, Can any one help me on this. How to capture the running process for two hours with an interval of 10 sec. Thanks in andvance Double post, continued here, thread closed (0 Replies)
Discussion started by: sarathkumar
0 Replies

10. Shell Programming and Scripting

Scripting Help - Display Processes

Hi, I was wondering if somebody could help me as I am struggling with writing a script for a training course. Ive had to write 5 scripts and this is the last one but am struggling with this even though I understand what it is meant to do..... PROBLEM: write a script which will allow you to... (1 Reply)
Discussion started by: isxrc
1 Replies
Login or Register to Ask a Question