The ps command prints information about active
processes and lightweight processes, or LWPs.
Without options, ps
prints information about processes associated
with the controlling terminal.
The output contains only the process ID,
terminal identifier, cumulative execution time, and the command name.
Otherwise, the information that is displayed
is controlled by the options.
Some options accept lists as arguments.
Items in a list can be either separated by commas or else enclosed
in double quotes and separated by commas or spaces.
Values for proclist and grplist
must be numeric.
The options are:
-a
Print information about all processes most frequently requested:
all those except session
leaders and processes not associated with a terminal.
-A
Print information about all processes.
-c
Print information in a format that reflects scheduler properties as described in
priocntl(1).
The -c option affects the output of the
-f and -l options, as described below.
-C
Print the CPU-Group ID for each process.
If a process is bound to a specific CPU-Group
(see
cg_bind(2)
), it prints b along with the CPU-Group ID.
-d
Print information about all processes except session leaders.
-e
Print information about every process now running.
-f
Generate a full listing.
(See below for significance of columns in a full listing.)
-ggrplist
List only process data
whose group leader's ID number(s) appears in grplist.
(A group leader is a process whose process ID number
is identical to its process group ID number.
-Ggrplist
List process data whose real group ID number(s)
appears in grplist.
-j
Print session ID and process group ID.
-l
Generate a long listing.
(See below.)
-L
Print status of active LWPs within a process.
-oformat
List information according to the format specified in format.
Multiple -o options can be specified.
See ``Specifying output format''.
-pproclist
List only process data whose process ID
numbers are given in proclist.
-P
Print the processor number on which an LWP is running when
the LWP has been explicitly bound by a user.
-rsysnam
Change the root directory to that
specified by sysnam which can be
an absolute pathname or a system name.
If a system name is given, ps
will use the first filesystem
entry in /etc/mnttab whose
last component matches sysnam.
A proc directory must exist at
the path implied by sysnam.
-ssidlist
List information on all session leaders
whose IDs appear in sidlist.
-ttermlist
List only process data
associated with the terminal given in termlist.
Terminal identifiers may be specified
in one of two forms: the device's
file name (for example, term/04) or, if the device's file name starts
with term, just the digit identifier (for example, 04).
-f option, which prints the login name.
-uuidlist
List only process data whose user ID
number or login name is given in uidlist.
In the listing, the numerical user ID will be printed unless
you give the -f option, which prints the login name.
-Uuidlist
List process data only for processes whose real user ID
or login names are in uidlist.
-y
Must be combined with -l option.
Changes the long listing:
prints the ``RSS'' and ``SZ'' fields in kilobytes and
does not print the ``F'' and ``ADDR'' fields.
Under the -f option, ps
tries to determine the command name
and arguments given when the process was created
by examining the user block.
Failing this, the command name
is printed, as it would have appeared without the -f option,
in square brackets.
Output
The column headings and the meaning of the columns in a
ps listing are given below; the letters
f and l identify the
option (full or long, respectively)
that causes the corresponding heading to appear;
all means that the heading
always appears.
Note that these two options determine
only
what information is provided for a process; they do not
determine which processes will be listed.
F(l)
Flags (hexadecimal and additive) associated with the
process, or the LWP if the -L option is specified.
00
Process has terminated: process table entry now available.
01
A system process: always in primary memory.
02
Parent is tracing process.
04
Tracing parent's signal has stopped process:
parent is waiting
(ptrace(2)).
08
Process is currently in primary memory.
10
Process currently in primary memory:
locked until an event completes.
20
Process cannot be swapped.
S(l)
The state of the
process, or the LWP if the -L option is specified:
O
Process is running on a processor.
S
Sleeping: process is waiting for an event to complete.
R
Runnable: process is on run queue.
I
Idle: process is being created.
Z
Zombie state: process terminated
and parent not waiting.
T
Traced: process stopped by a signal
because parent is tracing it.
X
SXBRK state: process is waiting for more primary memory.
UID(f,l)
The user ID number of the process owner
of the LWP (the login name is printed under the
-f option).
PID(all)
The process ID of the LWP
(This information is necessary to kill a process).
When a process is multithreaded,
a PID appears for each active process.
PPID(f,l)
The process ID of the parent process.
CG
The CPU-group ID for each process.
CLS(f,l)
Scheduling class for the
process, or the LWP when the -L option is specified.
Printed only when the -c option is used.
NI(l)
The nice value of the process (if supported by the process's
scheduling class).
PRI(l)
The priority of the process, or the LWP when the -L
option is specified.
Without the -c option, higher numbers mean lower priority.
With the -c option, higher numbers mean higher priority.
ADDR (l)
The memory address of the process.
SZ (l)
The size (in pages or clicks) of the virtual address space of the process.
When the -y option is specified, the size is in kilobytes.
WCHAN (l)
The address of an event for which the process is sleeping
or in SXBRK state;
if blank, the process is running.
For an individual LWP if -L is specified.
STIME (f)
The starting time of the process, given in hours, minutes,
and seconds.
(A process begun more than twenty-four hours before the ps inquiry is
executed is given in months and days.)
LTIME
The execution time for an individual LWP.
TTY (all)
The controlling terminal for the process
(the message, ?, is printed when there is no controlling terminal).
TIME (all)
The cumulative execution time for the process.
COMD (all)
The command name (the full command name and its arguments are printed under the
-f option).
If the POSIX2 environment variable is set, CMD is printed
instead of COMD.
NLWP
The number of LWPs in the process.
PSR
The processor id of the processor on which the LWP is running
when the user has explicitly bound the LWP to a particular processor.
When a ``-'' is listed, the LWP has not been explicitly bound,
but is executing on a scheduler-assigned processor.
RSS
Stable resident set size in kilobytes.
A process that has exited and has a parent, but has not
yet been waited for by the parent, is marked <defunct>.
Specifying output format
The following table shows the format keywords you can specify with the
-oformat option.
Multiple -o options can be specified.
ruser
The real user ID of the process. This will be the textual user ID, if
it can be obtained and the field width permits, or a decimal
representation otherwise.
RUSER
user
The effective user ID of the process. This will be the textual user
ID, if it can be obtained and the field width permits, or a decimal
representation otherwise.
USER
rgroup
The real group ID of the process. This will be the textual group ID,
if it can be obtained and the field width permits, or a decimal
representation otherwise.
RGROUP
group
The effective group ID of the process. This will be the textual group
ID, if it can be obtained and the field width permits, or a decimal
representation otherwise.
GROUP
cg
The CPU-Group for the process.
CG
pid
The decimal value of the process ID.
PID
ppid
The decimal value of the parent process ID.
PPID
pgid
The decimal value of the process group ID.
PGID
pcpu
The ratio of CPU time used recently to CPU
time available in the same period, expressed as a percentage.
The meaning of ``recently'' in this context is unspecified.
The CPU time available is determined in an unspecified manner.
%CPU
vsz
The size of the process in (virtual) memory in kilobytes as a decimal integer.
VSZ
nice
The decimal value of the system scheduling priority of the process.
See
nice(1).
NI
etime
The elapsed time since the process was started, in the form
[[dd-]hh:]mm:ss where dd will represent the
number of days, hh the number of hours,
mm the number of minutes, and ss the number of seconds.
The dd field will be a decimal integer.
The hh, mm, and ss fields will be two-digit
decimal integers padded on the left with zeros.
ELAPSED
time
The cumulative CPU time of the process in the form:
[[dd-]hh:]mm:ss as described above for etime.
TIME
tty
The name of the controlling terminal of the process (if any) in the
same format used by the
who(1)
utility.
TT
comm
The name of the command being executed (argv [0] value) as a string.
COMMAND
args
The command with all its arguments as a string.
COMMAND
Files
/dev
/dev/sxt/*
/dev/term/*
/dev/xt/*
terminal (tty) names searcher files
/proc/*
process information
/etc/passwd
UID information supplier
/etc/ps_data
internal data structure
/usr/lib/locale/locale/LC_MESSAGES/uxcore
language-specific message file
(See LANG on
environ(5).)
Things can change while
ps is running; the snap-shot it gives is true only for a
split-second, and it may not be accurate by the time you see it.
Some data printed for defunct processes is irrelevant.
If no termlist, proclist,
uidlist, or grplist
is specified, ps checks
stdin, stdout, and stderr
in that sequence, looking for the controlling terminal
and attempts to report on processes associated with
the controlling terminal.
In this case, if stdin,
stdout, and stderr
are all redirected, ps
will not find a controlling terminal, so there will be no report.
ps -ef may not report the start of a tty login
session, but rather an earlier time, when a getty was last
respawned on the tty line.
The -y option
has no effect unless combined with the -l option.
It is identical to the -x option in System V Release 4 MP.