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.

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 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.


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. 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 -, 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 22, 2018 PS(1)

tribblix@gmail.com :: GitHub :: Privacy