PS(1) User Commands PS(1)
NAME
ps - report process status
SYNOPSIS
ps [
-aAcdefjHlLPWyZ] [
-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. 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.)
-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 uses the
/proc/nnnnn/cmdline file to read the
full process arguments. The process may have changed these since it was
started. 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 (f
ull 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 (or, with the
-f option, the full current
process arguments).
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.
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 is
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 is 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. However,
the current implementation will display the full modified
process arguments when given the
-f argument; otherwise this is
the initial process arguments, but limited to 80 bytes.
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
-, 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.
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 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 illumos 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 |
| lgrp LGRP s S |
| lwp LWP sid SID |
| lwpname LWPNAME stime STIME |
| nlwp NLWP taskid TASKID |
| opri PRI uid UID |
| osz SZ wchan WCHAN |
| pmem %MEM zone ZONE |
| pri PRI zoneid ZONEID |
| ctid CTID |
+------------------------------------------+
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(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.
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(7) for descriptions of the following attributes:
+--------------------+---------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+---------------------+
|CSI | Enabled (see USAGE) |
+--------------------+---------------------+
|Interface Stability | Committed |
+--------------------+---------------------+
|Standard | See
standards(7). |
+--------------------+---------------------+
SEE ALSO
kill(1),
lgrpinfo(1),
nice(1),
pagesize(1),
pmap(1),
priocntl(1),
who(1),
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).
August 28, 2019
PS(1)