To check how many seconds have elapsed since a process started you can use this small shell script:
#!/bin/bash
init=`stat -t /proc/$1 | awk '{print $14}'`
curr=`date +%s`
seconds=`echo $curr - $init| bc`
name=`cat /proc/$1/cmdline`
echo $name $seconds
save it on a file called sincetime and give permissions for your user to run it and put it in your $path. Than, the command:
sincetime <pid>
will return the name of the process with the given pid and its age in seconds.
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
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.
The top program provides a dynamic real-time view of a running system. Type the top at command prompt:
# top
How to display a tree of processes
$pstree
How to lookup process by name
Use pgrep command command. It looks through the currently running processes and lists the process IDs which matches the selection criteria to screen. For example, display firefox process id:
$ pgrep firefox
How to get the process start date and time
$ ps -ef
To display status information of all processes running on your system, at the prompt, type the following:
ps gv
Comments
Post a Comment