Manual pages › General commands (1)
ps(1)
report process status
From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.
Also by this name: ps(1B), BSD versions of commands
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 run-
ning.
-d Print information about all processes except
session leaders.
-a Print information about all processes most fre-
quently 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 signi-
ficance 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 ter-
minal 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.
-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 com-
pletes.
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.
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 /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.