PS(1) SysV PS(1)
NAME
ps - report process status
SYNOPSIS
ps [options]
DESCRIPTION
The ps command prints information about active processes. Without
options, information is printed about processes associated with the
controlling terminal. The output is a list consisting of the process ID,
terminal identifier, cumulative execution time, and the command name.
Otherwise, the information that is displayed is controlled by the
selection of options.
All options accept names or lists as arguments. Arguments can be either
separated from one another by commas or enclosed in double quotes and
separated from one another by commas or spaces. Values for proclist and
grplist must be numeric.
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.
The column headings and the meaning of the columns in a ps list are given
below; the letters f and l indicate 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
S (l) The state of the process:
UID (f,l) The user ID number of the process owner (the login name
is printed under the -f option).
PID (all) The process ID of the process (this datum is necessary
in order to kill a process).
PPID (f,l) The process ID of the parent process.
C (f,l) Processor utilization for scheduling.
PRI (l) The priority of the process (higher numbers mean lower
priority).
NI (l) Nice value, used in priority computation.
ADDR (l) The memory address of the process.
SZ (l) The size (in pages or clicks) of the swappable process's
image in main memory.
WCHAN (l) The address of an event for which the process is
sleeping, or in SXBRK state, (if blank, the process is
running).
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.)
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.
COMMAND(all) The command name (the full command name and its
arguments are printed under the -f option).
A process that has exited and has a parent, but has not yet been waited
for by the parent, is marked <defunct>.
OPTIONS
The options are given in descending order according to volume and range
of information provided:
-e Print information about every process now running.
-d Print information about all processes except process group
leaders.
-a Print information about all processes most frequently
requested: all those except process group leaders and
processes not associated with a terminal.
-f Generate a full list. (See below for significance of
columns in a full list.)
-l Generate a long list. (See below.)
-n node_spec Perform ps on a remote node.
-t termlist 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 (e.g., tty04) or, if
the device's file name starts with tty, just the digit
identifier (e.g., 04).
-p proclist List only process data whose process ID numbers are given
in proclist.
-u uidlist 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.
-g grplist List only process data whose process 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. A login shell is a common
example of a process group leader.)
FILES
/dev
/dev/tty*
/etc/passwd UID information supplier
WARNING
Things can change while ps is running; the snap-shot it gives is only
true 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 order, looking for the controlling
terminal and attempts to report on processes associated with the
controlling terminal. In this situation, if stdin, stdout, and stderr
are all redirected, ps does not find a controlling terminal, and there is
no report.
On a heavily loaded system, ps can report an lseek(2) error and exit.
The ps program can seek to an invalid user area address; having gotten
the address of a process' user area, ps cannot seek to that address
before the process exits and the address becomes invalid.
Specifying ps -ef may not result in the reporting of the actual start of
a tty login session; instead, an earlier time, when a getty was last
respawned on the tty line, may be reported.
SEE ALSO
kill(1), nice(1), getty(1M).