ps command in detail
Here are the possible codes when using state "$ ps -e -o state,cmd"
PROCESS STATE CODES
D uninterruptible sleep (usually IO)
R runnable (on run queue)
S sleeping
T traced or stopped
Z a defunct ("zombie") process
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and
custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like
NPTL pthreads do)
+ is in the foreground process group
For instance:
Note that the -o is for user defined, and -e is for select
all process.
$ ps -e -o pid,state,start,time,etime,cmd
...
9946 S 15:40:45 00:00:00 02:23:29 /bin/bash -i
9985 T 15:41:24 00:00:01 02:22:50 emacs mout2
10003 T 15:43:59 00:00:00 02:20:15 emacs NOTES
10320 T 17:38:42 00:00:00 25:32 emacs stuff.c
...
You may want to command below, without the -e, which will give the
process only under the current terminal.
$ ps -o pid,state,start,time,etime,cmd
Want to find what 's impacting your load?
$ ps -e -o %cpu,pid,state,start,time,etime,%cpu,%mem,cmd|sort
-rn|less
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START
TIME COMMAND
root 1 0.0 0.0 1380 480 ? S Aug04
0:00 init [3]
root 2 0.0 0.0 0 0 ? SWN Aug04
0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? SW< Aug04
0:00 [events/0]
root 4 0.0 0.0 0 0 ? SW< Aug04
0:00 [khelper]
...
Or, if you want to see the environment add the -e option
$ ps aeux
...
chirico 2735 0.0 0.1 4400 1492 pts/0 S Aug04
0:00 -bash USER=chirico LOGNAME=chirico HOME=/home/chirico PATH=/usr/
chirico 2771 0.0 0.0 4328 924 pts/0 S Aug04
0:00 screen -e^Pa -D -R HOSTNAME=third-fl-71.localdomain TERM=xterm S
chirico 2772 0.0 0.6 9476 6352 ? S Aug04
0:54 SCREEN -e^Pa -D -R HOSTNAME=third-fl-71.localdomain TERM=xterm S
chirico 2773 0.0 0.1 4432 1548 pts/1 S Aug04
0:10 /bin/bash STY=2772.pts-0.third-fl-71 TERM=screen TERMCAP=SC|scre
chirico 2797 0.0 0.1 4416 1496 pts/2 S Aug04
0:00 /bin/bash STY=2772.pts-0.third-fl-71 TERM=screen TERMCAP=SC|scre
root 2821 0.0 0.0 4100 952 pts/2 S Aug04
0:00 su -
root 2822 0.0 0.1 4384 1480 pts/2 S Aug04
0:00 -bash
chirico 2862 0.0 0.1 4428 1524 pts/3 S Aug04
0:00 /bin/bash STY=2772.pts-0.third-fl-71 TERM=screen TERMCAP=SC|scre
sporkey 2946 0.0 0.2 6836 2960 ? S Aug04
0:15 fetchmail
chirico 2952 0.0 0.1 4436 1552 pts/5 S Aug04
0:00 /bin/bash STY=2772.pts-0.third-fl-71 TERM=screen TERMCAP=SC|scre
chirico 3880 0.0 0.1 4416 1496 pts/6 S Aug05
0:00 /bin/bash STY=2772.pts-0.third-fl-71 TERM=screen TERMCAP=SC|scre
root 3904 0.0 0.0 4100 956 pts/6 S Aug05
0:00 su - donkey
donkey 3905 0.0 0.1 4336 1452 pts/6 S Aug05
0:00 -bash
donkey 3938 0.0 0.2 6732 2856 ? S Aug05
0:14 fetchmail
chirico 3944 0.0 0.1 4416 1496 pts/7 S Aug05
0:00 /bin/bash STY=2772.pts-0.third-fl-71 TERM=screen TERMCAP=SC|scre
...
There is also a -f "forrest" option. Also note below " -bash" is
the start of a login shell.
$ ps aeuxwwf
The ww option above gives a wide format with all variables. Use
the above command if you plan
to parse through a Perl script. Otherwise, it may be easier to do
a quick read using the command
below, without "ww".
$ ps aeuxf
...
root 2339 0.0 0.1 3512 1444 ? S Dec01
0:00 /usr/sbin/sshd
root 25651 0.0 0.1 6764 1980 ? S Dec23
0:00 \_ /usr/sbin/sshd
chirico 25653 0.0 0.2 6840 2236 ? S Dec23
0:14 \_ /usr/sbin/sshd
chirico 25654 0.0 0.1 4364 1440 pts/4 S Dec23
0:00 \_ -bash USER=chirico LOGNAME=chirico HOME=/home/chirico
chirico 25690 0.0 0.0 4328 920 pts/4 S Dec23
0:00 \_ screen -e^Pa -D -R
HOSTNAME=third-fl-71.localdomain TERM=xterm
root 2355 0.0 0.0 2068 904 ? S Dec01
0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
...
It is also possible to list the process by command line. For
example, the following command will only list the emacs
processes.
$ ps -fC emacs
UID PID PPID C STIME TTY TIME CMD
chirico 5049 5020 0 May11 pts/13 00:00:00 emacs -nw Notes
chirico 12368 5104 0 May12 pts/18 00:00:00 emacs -nw dnotify.c
chirico 19792 18028 0 May13 pts/20 00:00:00 emacs -nw hello.c
chirico 14034 27367 0 18:52 pts/8 00:00:00 emacs -nw
How_to_Linux_and_Open_Source.txt
You may also want to consider using top in batch mode. Here the
"-n 1" means refresh once,
and the "b" is for batch. The "fmt -s" is to put it in a more
readable format.
$ top -n 1 b |fmt -s >>statfile
Explore your hobbies and interests. Go to
http://in.promos.yahoo.com/groups/
[Non-text portions of this message have been removed]