How To Find Out How Long A Process Has Been Running In Linux

Find Out How Long A Process Has Been Running In Linux

Ever wanted to know how long a process has been running in your Linux box? Well, you’re on the right track. This brief guide helps you to find out the uptime of an active process. You don’t need any monitoring applications. In Unix-like operating systems, there is a command called ps, which is used to display the information about the active processes. Using ps command, we can easily find out how long a process is running.

Find Out How Long A Process Has Been Running In Linux

ps command has different format specifiers (keywords) that may be used to control the output format. We are going to use the following two keywords to find the uptime of an active process.

  • etime – elapsed time since the process was started, in the form [[DD-]hh:]mm:ss.
  • etimes – elapsed time since the process was started, in seconds.

First, you need to find out the PID of a process. The following command displays the PID of dhcpcd process.

$ pidof dhcpcd
8299

As you see in the above output, 8299 is the PID of dhcpcd process.

Now, we can find how long this process has been running using command:

$ ps -p 8299 -o etime
 ELAPSED
 04:05:37

You can also view the elapsed time in seconds using etimes keyword.

$ ps -p 8299 -o etimes
ELAPSED
 14749

Find out how long a process has been running in Linux

Not only a single process, we can also display the uptime of all processes using command:

ps -eo pid,comm,lstart,etime,time,args

Or,

ps -eo pid,comm,lstart,etimes,time,args

The first command displays the uptime of all Linux processes, in [[DD-]hh:]mm:ss format, and the latter displays the uptime in seconds. Here is the sample output of second command.

uptime of all processes in Linux

As you see in the above output, we have the uptime of all processes with six columns format.

Here,

  • PID – The Process ID
  • COMMAND(second column) – The command name without options and/or arguments.
  • STARTED – The absolute starting time of the process.
  • ELAPSED – The elapsed time since the process was started, in the form of [[dd-]hh:]mm:ss.
  • TIME – Cumulative CPU time, “[dd-]hh:mm:ss” format.
  • COMMAND (last column) – Command name with all its provided options and arguments.

For more details about ps command, check the man pages.

man ps

And, that’s all for now. You know now how to find out how long a process is running in your Linux system. Hope this helps. I will be soon here with another useful guide. If you find our guides helpful, please spend a moment to share them on your social, professional networks and support OSTechNix.

Happy weekend!

Cheers!!

Thanks for stopping by!

Help us to help you:

Have a Good day!!

You may also like...

  • jhuebel

    This bash script will return the elapsed time (in seconds) of any processes with the specified name, without any “ELAPSED” text or whitespace. If there are multiple processes, then the times for each process are seperated by newlines.

    Paste this into a file called piduptime.sh and make it executable. Syntax is “piduptime.sh &ltprocess name&gt”.

    #!/bin/bash

    PIDS=”$(pidof $1)”
    for PID in $PIDS
    do
    ps -o etimes -p $PID | sed -n 2p | sed ‘s/ //g’
    done

    • SK

      Thank you. I will check it out.