PS(1) User Commands PS(1)
ps - report process status
ps [-aAcdefjHlLmPWyZ] [-g grplist] [-h lgrplist] [-n namelist]
[-o format]... [-p proclist] [-s sidlist] [-t term] [-u uidlist]
[-U uidlist] [-G gidlist] [-z zonelist]
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.
The ps command also accepts BSD-style options (e.g. aux). See ps(1B).
The following options are supported:
-a Lists information about all processes most frequently
requested: all those except session leaders and processes
not associated with a terminal.
This option is ignored when the -e option is also
specified.
-A Lists information for all processes. Identical to -e,
below.
-c Prints 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.
-d Lists information about all processes except session
leaders.
-e Lists information about every process now running.
When the -e option is specified, options -z, -t, -u, -U,
-g, -G, -p, -h, -s, and -a have no effect.
-f Generates a full listing. (See below for significance 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.)
This option is ignored when the -e option is also
specified.
-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.
This option is ignored when the -e option is also
specified.
-h lgrplist
Lists only the processes homed to the specified lgrplist.
Nothing is listed for any invalid group specified in
lgrplist.
This option is ignored when the -e option is also
specified.
-H Prints the home lgroup of the process under an additional
column header, LGRP.
-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).
-m Prints microstate information about the process or, when -L
is specified, each thread. See below for a list of the
output fields this adds.
-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 specification
given in format. This is fully described in DISPLAY
FORMATS. Multiple -o options can be specified; the format
specification is 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.
This option is ignored when the -e option is also
specified.
-P Prints the number of the processor to which the process or
lwp is bound, if any, under an additional column header,
PSR.
-s sidlist Lists information on all session leaders whose IDs appear
in sidlist.
This option is ignored when the -e option is also
specified.
-t term Lists only process data associated with term. Terminal
identifiers are specified as a device file name, and an
identifier. For example, term/a, or pts/0.
This option is ignored when the -e option is also
specified.
-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 is printed unless you give the -f option,
which prints the login name.
This option is ignored when the -e option is also
specified.
-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.
This option is ignored when the -e option is also
specified.
-W Truncate long names even when ps would normally print them
in full. A trailing asterisk marks a long name that has
been truncated to fit the column.
-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) is 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.
This option is ignored when the -e option is also
specified.
-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 characters. 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 is ignored and ps selects the processes
represented by the inclusive OR of all the selection-criteria options.
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: These two options
determine only what information is provided for a process; they do not
determine which processes are listed.
F (l) Flags (hexadecimal and additive) associated with the process.
These flags are available for historical 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). A trailing asterisk marks a long
name that has been truncated to fit the column.
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 (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 message, ?, 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 specified).
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.
The -m option prints information about the process or thread microstate
accounting. When looking at information for a process, it is a
summation across all threads that currently exist or have ever existed
in the process. Use the -o option for stable output. Stable output
for these fields is printed as a hexadecimal number of nanoseconds.
Otherwise, times are humanized and are displayed in the following
units:
ns nanoseconds
us microseconds
ms milliseconds
s seconds
m minutes
h hours
d days
y years
The following additional columns are printed when the -m option is
specified:
USERTIME
Elapsed time spent in user mode.
SYSTIME
Elapsed time spent in system mode. Generally due to executing
system calls or page faults.
TTIME Time spent in other system traps.
TFTIME Time spent asleep in user text page faults.
DFTIME Time spent asleep in user data page faults.
KFTIME Time spent asleep in kernel page faults.
LTIME Time spent asleep waiting for a user-mode lock.
SLPTIME
Time spent asleep for any other reason.
WTIME Time spent runnable, but waiting for CPU availability.
STOPTIME
Time spent stopped for any reason, such as job control, use of
/proc, etc.
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
control.
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 is used as the header text. The fields specified are written
in the order specified on the command line, and should be arranged in
columns in the output. The field widths are selected by the system to
be at least as wide as the header text (default or overridden value).
If the header text is null, such as -o user= the field width is at
least as wide as the default header text. Long names are not truncated
in this mode. If all header text fields are null, no header line is
written.
The following names are recognized in the POSIX locale:
user The effective user ID of the process. This is 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 is 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 is 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 is 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 percentage. The meaning of
`recently' in this context 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 is a decimal integer. The hh, mm, and ss fields
are 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 are 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) command.
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 might 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 might
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
illumos implementation 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 illumos 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 decimal 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.
lwpname
The name of the lwp, if set. 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
-1, 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 provided by proc(5) that
might underestimate the actual resident set size. Users who
wish to get more accurate 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 percentage.
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.
lgrp The home lgroup of the process.
dmodel The data model of the process, printed in the same manner as
via pflags(1). The currently supported data models are _ILP32
and _LP64.
usertime
Elapsed time executing in user mode.
systime
Elapsed time executing in system mode. Generally due to
executing system calls or page faults.
ttime Time spent in other system traps.
tftime Time spent asleep in user text page faults.
dftime Time spent asleep in user data page faults.
kftime Time spent asleep in kernel page faults.
ltime Time spent asleep waiting for a user-mode lock.
slptime
Time spent asleep for any other reason.
wtime Time spent runnable, but waiting for CPU availability.
stoptime
Time spent stopped for any reason, such as job control, use of
/proc, etc.
minf Number of minor page faults.
majf Number of major page faults.
vctx Count of voluntary context switches.
ictx Count of involuntary context switches.
sigs Count of signals received.
sysc Count of system calls executed.
Only comm, lwpname, and args are allowed to contain blank characters;
all others, including the illumos implementation variables, are not.
The following table specifies the default header to be used in the
POSIX locale corresponding to both standard and illumos-specific format
specifiers.
Format Specifier Default Header
addr ADDR
args COMMAND
c C
class CLS
comm COMMAND
ctid CTID
etime ELAPSED
f F
fname COMMAND
gid GID
group GROUP
lgrp LGRP
lwp LWP
lwpname LWPNAME
nice NI
nlwp NLWP
opri PRI
osz SZ
pcpu %CPU
pgid PGID
pid PID
pmem %MEM
ppid PPID
pri PRI
project PROJECT
projid PROJID
psr PSR
rgid RGID
rgroup RGROUP
rss RSS
ruid RUID
ruser RUSER
s S
sid SID
stime STIME
taskid TASKID
time TIME
tty TT
uid UID
user USER
vsz VSZ
wchan WCHAN
zone ZONE
zoneid ZONEID
See environ(7) 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.
/dev/pts/*, /dev/term/* terminal ("tty") character devices
/etc/passwd UID information supplier
/proc/* process control files
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
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.
Committed
Enabled
kill(1), lgrpinfo(1), nice(1), pagesize(1), pmap(1), priocntl(1),
who(1), ps(1B), proc(5), ttysrch(5), attributes(7), environ(7),
resource_controls(7), standards(7), zones(7), getty(8)
Things can change while ps is running. The snapshot it gives is true
only for a split-second, and it might 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 reports all
processes associated with the controlling terminal. If there is no
controlling terminal, there is no report other than the header.
ps -eF or ps -o stime might 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).
illumos April 22, 2026 illumos
NAME
ps - report process status
SYNOPSIS
ps [-aAcdefjHlLmPWyZ] [-g grplist] [-h lgrplist] [-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.
The ps command also accepts BSD-style options (e.g. aux). See ps(1B).
OPTIONS
The following options are supported:
-a Lists information about all processes most frequently
requested: all those except session leaders and processes
not associated with a terminal.
This option is ignored when the -e option is also
specified.
-A Lists information for all processes. Identical to -e,
below.
-c Prints 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.
-d Lists information about all processes except session
leaders.
-e Lists information about every process now running.
When the -e option is specified, options -z, -t, -u, -U,
-g, -G, -p, -h, -s, and -a have no effect.
-f Generates a full listing. (See below for significance 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.)
This option is ignored when the -e option is also
specified.
-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.
This option is ignored when the -e option is also
specified.
-h lgrplist
Lists only the processes homed to the specified lgrplist.
Nothing is listed for any invalid group specified in
lgrplist.
This option is ignored when the -e option is also
specified.
-H Prints the home lgroup of the process under an additional
column header, LGRP.
-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).
-m Prints microstate information about the process or, when -L
is specified, each thread. See below for a list of the
output fields this adds.
-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 specification
given in format. This is fully described in DISPLAY
FORMATS. Multiple -o options can be specified; the format
specification is 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.
This option is ignored when the -e option is also
specified.
-P Prints the number of the processor to which the process or
lwp is bound, if any, under an additional column header,
PSR.
-s sidlist Lists information on all session leaders whose IDs appear
in sidlist.
This option is ignored when the -e option is also
specified.
-t term Lists only process data associated with term. Terminal
identifiers are specified as a device file name, and an
identifier. For example, term/a, or pts/0.
This option is ignored when the -e option is also
specified.
-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 is printed unless you give the -f option,
which prints the login name.
This option is ignored when the -e option is also
specified.
-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.
This option is ignored when the -e option is also
specified.
-W Truncate long names even when ps would normally print them
in full. A trailing asterisk marks a long name that has
been truncated to fit the column.
-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) is 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.
This option is ignored when the -e option is also
specified.
-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 characters. 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 is ignored and ps selects 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
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: These two options
determine only what information is provided for a process; they do not
determine which processes are listed.
F (l) Flags (hexadecimal and additive) associated with the process.
These flags are available for historical 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). A trailing asterisk marks a long
name that has been truncated to fit the column.
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 (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 message, ?, 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 specified).
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.
The -m option prints information about the process or thread microstate
accounting. When looking at information for a process, it is a
summation across all threads that currently exist or have ever existed
in the process. Use the -o option for stable output. Stable output
for these fields is printed as a hexadecimal number of nanoseconds.
Otherwise, times are humanized and are displayed in the following
units:
ns nanoseconds
us microseconds
ms milliseconds
s seconds
m minutes
h hours
d days
y years
The following additional columns are printed when the -m option is
specified:
USERTIME
Elapsed time spent in user mode.
SYSTIME
Elapsed time spent in system mode. Generally due to executing
system calls or page faults.
TTIME Time spent in other system traps.
TFTIME Time spent asleep in user text page faults.
DFTIME Time spent asleep in user data page faults.
KFTIME Time spent asleep in kernel page faults.
LTIME Time spent asleep waiting for a user-mode lock.
SLPTIME
Time spent asleep for any other reason.
WTIME Time spent runnable, but waiting for CPU availability.
STOPTIME
Time spent stopped for any reason, such as job control, use of
/proc, etc.
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
control.
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 is used as the header text. The fields specified are written
in the order specified on the command line, and should be arranged in
columns in the output. The field widths are selected by the system to
be at least as wide as the header text (default or overridden value).
If the header text is null, such as -o user= the field width is at
least as wide as the default header text. Long names are not truncated
in this mode. If all header text fields are null, no header line is
written.
The following names are recognized in the POSIX locale:
user The effective user ID of the process. This is 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 is 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 is 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 is 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 percentage. The meaning of
`recently' in this context 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 is a decimal integer. The hh, mm, and ss fields
are 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 are 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) command.
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 might 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 might
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
illumos implementation 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 illumos 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 decimal 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.
lwpname
The name of the lwp, if set. 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
-1, 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 provided by proc(5) that
might underestimate the actual resident set size. Users who
wish to get more accurate 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 percentage.
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.
lgrp The home lgroup of the process.
dmodel The data model of the process, printed in the same manner as
via pflags(1). The currently supported data models are _ILP32
and _LP64.
usertime
Elapsed time executing in user mode.
systime
Elapsed time executing in system mode. Generally due to
executing system calls or page faults.
ttime Time spent in other system traps.
tftime Time spent asleep in user text page faults.
dftime Time spent asleep in user data page faults.
kftime Time spent asleep in kernel page faults.
ltime Time spent asleep waiting for a user-mode lock.
slptime
Time spent asleep for any other reason.
wtime Time spent runnable, but waiting for CPU availability.
stoptime
Time spent stopped for any reason, such as job control, use of
/proc, etc.
minf Number of minor page faults.
majf Number of major page faults.
vctx Count of voluntary context switches.
ictx Count of involuntary context switches.
sigs Count of signals received.
sysc Count of system calls executed.
Only comm, lwpname, and args are allowed to contain blank characters;
all others, including the illumos implementation variables, are not.
The following table specifies the default header to be used in the
POSIX locale corresponding to both standard and illumos-specific format
specifiers.
Format Specifier Default Header
addr ADDR
args COMMAND
c C
class CLS
comm COMMAND
ctid CTID
etime ELAPSED
f F
fname COMMAND
gid GID
group GROUP
lgrp LGRP
lwp LWP
lwpname LWPNAME
nice NI
nlwp NLWP
opri PRI
osz SZ
pcpu %CPU
pgid PGID
pid PID
pmem %MEM
ppid PPID
pri PRI
project PROJECT
projid PROJID
psr PSR
rgid RGID
rgroup RGROUP
rss RSS
ruid RUID
ruser RUSER
s S
sid SID
stime STIME
taskid TASKID
time TIME
tty TT
uid UID
user USER
vsz VSZ
wchan WCHAN
zone ZONE
zoneid ZONEID
ENVIRONMENT VARIABLES
See environ(7) 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.
FILES
/dev/pts/*, /dev/term/* terminal ("tty") character devices
/etc/passwd UID information supplier
/proc/* process control files
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
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.
INTERFACE STABILITY
Committed
CODE SET INDEPENDENCE
Enabled
SEE ALSO
kill(1), lgrpinfo(1), nice(1), pagesize(1), pmap(1), priocntl(1),
who(1), ps(1B), proc(5), ttysrch(5), attributes(7), environ(7),
resource_controls(7), standards(7), zones(7), getty(8)
NOTES
Things can change while ps is running. The snapshot it gives is true
only for a split-second, and it might 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 reports all
processes associated with the controlling terminal. If there is no
controlling terminal, there is no report other than the header.
ps -eF or ps -o stime might 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).
illumos April 22, 2026 illumos