ps(1) User Commands ps(1)NAMEps - report process status
SYNOPSISps [-aAcdefjlLPyZ] [-g grplist] [-n namelist] [-o format]...
[-p proclist] [-s sidlist] [-t term] [-u uidlist] [-U uidlist]
[-G gidlist] [-z zonelist]
DESCRIPTION
The ps command prints information about active processes. Without
options, ps prints information about processes that have the same
effective user ID and the same controlling terminal as the invoker. 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 quotes and separated by commas
or spaces. Values for proclist and grplist must be numeric.
OPTIONS
The following options are supported:
-a Lists information about all processes most fre‐
quently requested: all those except session leaders
and processes not associated with a terminal.
-A Lists information for all processes. Identical to
-e, below.
-c Prints information in a format that reflects sched‐
uler properties as described in priocntl(1). The -c
option affects the output of the -f and -l options,
as described below.
-d Lists information about all processes except ses‐
sion leaders.
-e Lists information about every process now running.
When the -eoption is specified, options -z, -t, -u,
-U, -g, -G, -p, -g, -s and -a options have no
effect.
-f Generates a full listing. (See below for signifi‐
cance of columns in a full listing.)
-g grplist Lists 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.)
-G gidlist Lists information for processes whose real group ID
numbers are given in gidlist. The gidlist must be a
single argument in the form of a blank- or comma-
separated list.
-j Prints session ID and process group ID.
-l Generates a long listing. (See below.)
-L Prints information about each light weight process
(lwp) in each selected process. (See below.)
-n namelist Specifies the name of an alternative system
namelist file in place of the default. This option
is accepted for compatibility, but is ignored.
-o format Prints information according to the format specifi‐
cation given in format. This is fully described in
DISPLAY FORMATS. Multiple -o options can be speci‐
fied; the format specification will be interpreted
as the space-character-separated concatenation of
all the format option-arguments.
-p proclist Lists only process data whose process ID numbers
are given in proclist.
-P Prints the number of the processor to which the
process or lwp is bound, if any, under an addi‐
tional column header, PSR.
-s sidlist Lists information on all session leaders whose IDs
appear in sidlist.
-t term Lists only process data associated with term. Ter‐
minal identifiers are specified as a device file
name, and an identifier. For example, term/a, or
pts/0.
-u uidlist Lists only process data whose effective 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.
-U uidlist Lists information for processes whose real user ID
numbers or login names are given in uidlist. The
uidlist must be a single argument in the form of a
blank- or comma-separated list.
-y Under a long listing (-l), omits the obsolete F and
ADDR columns and includes an RSS column to report
the resident set size of the process. Under the -y
option, both RSS and SZ (see below) will be
reported in units of kilobytes instead of pages.
-z zonelist Lists only processes in the specified zones. Zones
can be specified either by name or ID. This option
is only useful when executed in the global zone.
-Z Prints the name of the zone with which the process
is associated under an additional column header,
ZONE. The ZONE column width is limited to 8 charac‐
ters. Use ps-eZ for a quick way to see information
about every process now running along with the
associated zone name. Use
ps-eo zone,uid,pid,ppid,time,comm,...
to see zone names wider than 8 characters.
Many of the options shown are used to select processes to list. If any
are specified, the default list will be ignored and ps will select the
processes represented by the inclusive OR of all the selection-criteria
options.
DISPLAY FORMATS
Under the -f option, ps tries to determine the command name and argu‐
ments 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: These two options deter‐
mine 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. These flags are available for histori‐
cal purposes; no meaning should be currently
ascribed to them.
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.
T Process is stopped, either by a job
control signal or because it is being
traced.
W Waiting: process is waiting for CPU
usage to drop to the CPU-caps enforced
limits.
Z Zombie state: process terminated and
parent not waiting.
UID (f,l) The effective user ID number of the process (the
login name is printed under the -f option).
PID (all) The process ID of the process (this datum is neces‐
sary in order to kill a process).
PPID (f,l) The process ID of the parent process.
C (f,l) Processor utilization for scheduling (obsolete).
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 certain scheduling classes have a nice
value.
ADDR (l) The memory address of the process.
SZ (l) The total size of the process in virtual memory,
including all mapped files and devices, in pages.
See pagesize(1).
WCHAN (l) The address of an event for which the process is
sleeping (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 mes‐
sage, ?, is printed when there is no controlling
terminal).
TIME (all) The cumulative execution time for the process.
LTIME (all) The execution time for the lwp being reported.
CMD (all) The command name (the full command name and its
arguments, up to a limit of 80 characters, are
printed under the -f option).
The following two additional columns are printed when the -j option is
specified:
PGID The process ID of the process group leader.
SID The process ID of the session leader.
The following two additional columns are printed when the -L option is
specified:
LWP The lwp ID of the lwp being reported.
NLWP The number of lwps in the process (if -f is also speci‐
fied).
Under the -L option, one line is printed for each lwp in the process
and the time-reporting fields STIME and LTIME show the values for the
lwp, not the process. A traditional single-threaded process contains
only one lwp.
A process that has exited and has a parent, but has not yet been waited
for by the parent, is marked <defunct>.
-o format
The -o option allows the output format to be specified under user con‐
trol.
The format specification must be a list of names presented as a single
argument, blank- or comma-separated. Each variable has a default
header. The default header can be overridden by appending an equals
sign and the new text of the header. The rest of the characters in the
argument will be used as the header text. The fields specified will be
written in the order specified on the command line, and should be
arranged in columns in the output. The field widths will be selected by
the system to be at least as wide as the header text (default or over‐
ridden value). If the header text is null, such as -o user=, the field
width will be at least as wide as the default header text. If all
header text fields are null, no header line will be written.
The following names are recognized in the POSIX locale:
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.
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.
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.
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.
pid The decimal value of the process ID.
ppid The decimal value of the parent process ID.
pgid The decimal value of the process group ID.
pcpu The ratio of CPU time used recently to CPU time
available in the same period, expressed as a per‐
centage. The meaning of ``recently'' in this con‐
text is unspecified. The CPU time available is
determined in an unspecified manner.
vsz The total size of the process in virtual memory, in
kilobytes.
nice The decimal value of the system scheduling priority
of the process. See nice(1).
etime In the POSIX locale, the elapsed time since the
process was started, in the form:
[[dd-]hh:]mm:ss
where
dd is the number of days
hh is the number of hours
mm is the number of minutes
ss is 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.
time In the POSIX locale, the cumulative CPU time of the
process in the form:
[dd-]hh:mm:ss
The dd, hh, mm, and ss fields will be as described
in the etime specifier.
tty The name of the controlling terminal of the process
(if any) in the same format used by the who(1) com‐
mand.
comm The name of the command being executed (argv[0]
value) as a string.
args The command with all its arguments as a string. The
implementation may truncate this value to the field
width; it is implementation-dependent whether any
further truncation occurs. It is unspecified
whether the string represented is a version of the
argument list as it was passed to the command when
it started, or is a version of the arguments as
they may have been modified by the application.
Applications cannot depend on being able to modify
their argument list and having that modification be
reflected in the output of ps. The Solaris imple‐
mentation limits the string to 80 bytes; the string
is the version of the argument list as it was
passed to the command when it started.
The following names are recognized in the Solaris implementation:
f Flags (hexadecimal and additive) associated with
the process.
s The state of the process.
c Processor utilization for scheduling (obsolete).
uid The effective user ID number of the process as a
decimal integer.
ruid The real user ID number of the process as a decimal
integer.
gid The effective group ID number of the process as a
decimal integer.
rgid The real group ID number of the process as a deci‐
mal integer.
projid The project ID number of the process as a decimal
integer.
project The project ID of the process as a textual value if
that value can be obtained; otherwise, as a decimal
integer.
zoneid The zone ID number of the process as a decimal
integer.
zone The zone ID of the process as a textual value if
that value can be obtained; otherwise, as a decimal
integer.
sid The process ID of the session leader.
taskid The task ID of the process.
class The scheduling class of the process.
pri The priority of the process. Higher numbers mean
higher priority.
opri The obsolete priority of the process. Lower numbers
mean higher priority.
lwp The decimal value of the lwp ID. Requesting this
formatting option causes one line to be printed for
each lwp in the process.
nlwp The number of lwps in the process.
psr The number of the processor to which the process or
lwp is bound.
pset The ID of the processor set to which the process
or lwp is bound.
addr The memory address of the process.
osz The total size of the process in virtual memory, in
pages.
wchan The address of an event for which the process is
sleeping (if −, the process is running).
stime The starting time or date of the process, printed
with no blanks.
rss The resident set size of the process, in kilobytes.
The rss value reported by ps is an estimate pro‐
vided by proc(4) that may underestimate the actual
resident set size. Users who wish to get more accu‐
rate usage information for capacity planning should
use pmap(1)-x instead.
pmem The ratio of the process's resident set size to the
physical memory on the machine, expressed as a per‐
centage.
fname The first 8 bytes of the base name of the process's
executable file.
ctid The contract ID of the process contract the process
is a member of as a decimal integer.
Only comm and args are allowed to contain blank characters; all others,
including the Solaris implementation variables, are not.
The following table specifies the default header to be used in the
POSIX locale corresponding to each format specifier.
┌─────────────────────────────────────────────────────────────────┐
│ Format Default Format Default │
│ Specifier Header Specifier Header │
├─────────────────────────────────────────────────────────────────┤
│ args COMMAND ppid PPID │
│ comm COMMAND rgroup RGROUP │
│ etime ELAPSED ruser RUSER │
│ group GROUP time TIME │
│ nice NI tty TT │
│ pcpu %CPU user USER │
│ pgid PGID vsz VSZ │
│ pid PID │
└─────────────────────────────────────────────────────────────────┘
The following table lists the Solaris implementation format specifiers
and the default header used with each.
┌─────────────────────────────────────────────────────────────────┐
│ Format Default Format Default │
│ Specifier Header Specifier Header │
├─────────────────────────────────────────────────────────────────┤
│ addr ADDR projid PROJID │
│ c C project PROJECT │
│ class CLS psr PSR │
│ f F rgid RGID │
│ fname COMMAND rss RSS │
│ gid GID ruid RUID │
│ lwp LWP s S │
│ nlwp NLWP sid SID │
│ opri PRI stime STIME │
│ osz SZ taskid TASKID │
│ pmem %MEM uid UID │
│ pri PRI wchan WCHAN │
│ ctid CTID zone ZONE │
│ zoneid ZONEID │
└─────────────────────────────────────────────────────────────────┘
EXAMPLES
Example 1 Using ps Command
The command:
example% ps-o user,pid,ppid=MOM -o args
writes the following in the POSIX locale:
USER PID MOM COMMAND
helene 34 12 ps-o uid,pid,ppid=MOM -o args
The contents of the COMMAND field need not be the same due to possible
truncation.
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables
that affect the execution of ps: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES,
LC_TIME, and NLSPATH.
COLUMNS Override the system-selected horizontal
screen size, used to determine the number
of text columns to display.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
FILES
/dev/pts/*
/dev/term/* terminal (``tty'') names searcher files
/etc/passwd UID information supplier
/proc/* process control files
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Availability │SUNWcsu │
├─────────────────────────────┼─────────────────────────────┤
│CSI │Enabled (see USAGE) │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Standard │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOkill(1), nice(1), pagesize(1), pgrep(1), pmap(1), priocntl(1), who(1),
getty(1M), proc(4), ttysrch(4), attributes(5), environ(5), stan‐
dards(5), zones(5)NOTES
Things can change while ps is running. The snapshot 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 options to select processes are specified, ps will report all
processes associated with the controlling terminal. If there is no con‐
trolling terminal, there will be no report other than the header.
ps-ef or ps-o stime 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.
ps is CSI-enabled except for login names (usernames).
SunOS 5.10 9 Jan 2008 ps(1)