ps(1) (Essential Utilities) ps(1)
NAME
ps - report process status
SYNOPSIS
ps [ options ]
DESCRIPTION
ps prints information about active processes. 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:
-e Print information about every process now running.
-d Print information about all processes except session
leaders.
-a Print information about all processes most frequently
requested: all those except process group leaders and
processes not associated with a terminal.
-j Print session ID and process group ID.
-f Generate a full listing. (See below for significance of
columns in a full listing.)
-l Generate a long listing. (See below.)
-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.
-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 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.
7/91 Page 1
ps(1) (Essential Utilities) ps(1)
-s sesslist List information on all session leaders whose IDs appear
in sesslist.
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 listing
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
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.
S (l) The state of the process:
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 (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.
Page 2 7/91
ps(1) (Essential Utilities) ps(1)
C (f,l) Processor utilization for scheduling. Not printed
when the -c option is used.
CLS (f,l) Scheduling class. Printed only when the -c option
is used.
PRI (l) The priority of the process. Without the -c option,
higher numbers mean lower priority. With the -c
option, higher numbers mean higher priority.
NI (l) Nice value, used in priority computation. Not
printed when the -c option is used. Only processes
in the time-sharing class have a nice value.
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>.
FILES
/dev
/dev/sxt/*
/dev/tty*
/dev/xt/* terminal (``tty'') names searcher files
/dev/kmem kernel virtual memory
/dev/swap the default swap device
/dev/mem memory
/etc/passwd UID information supplier
7/91 Page 3
ps(1) (Essential Utilities) ps(1)
/etc/ps_data internal data structure
SEE ALSO
kill(1), nice(1), priocntl(1).
getty(1M) in the System Administrator's Reference Manual.
NOTES
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 order, looking for the controlling
terminal and will attempt to report on processes associated with the
controlling terminal. In this situation, if stdin, stdout, and
stderr are all redirected, ps will not find a controlling terminal,
so there will be no report.
On a heavily loaded system, ps may report an lseek error and exit.
ps may seek to an invalid user area address: having obtained the
address of a process' user area, ps may not be able to seek to that
address before the process exits and the address becomes invalid.
ps -ef may not report the actual start of a tty login session, but
rather an earlier time, when a getty was last respawned on the tty
line.
Page 4 7/91