Which files does the linux command "top" read from in order to build its table of data? Specifically, I'd like to be able to find the data for the "command" column based off of a PID.
3 Answers
It's in /proc/$pid/cmdline. The fields are nul separated. Example on my machine:
$ xargs -0 echo < /proc/4263/cmdline
/usr/lib64/firefox-3.5.3/firefox -no-remote -P default
$
top gets its information from the files found in procfs aka /proc
you can query based off the pid by using
ps
unfortunately i don't recall the syntax of the command...
-
1
You can use ps to get the name of the command link to a particular PID
ps [PID]
It will also give you additional information based on the parameters you pass. See here for more details.
Alternatively you can download the top source code which should give you a more precise answer to the question.
Also this PerlMonks article explains how to simulate top on a AIX system, which also makes use of the ps command.
-
1The example code shows PS (upper-case). Linux newbies beware, that won't work -- use "ps" (lower-case). The rest of you already knew that. Commented Sep 17, 2009 at 20:13
-
@Doug - Fixed. Oversight on my side. Thanks for clarifying. Commented Sep 18, 2009 at 5:55