Manual page for ps(1)
ps - report process status
SYNOPSIS
ps
[
-aAcdefjlLPy
] [
-g grplist
]
[
-n namelist
]
[[
-o format
] ... ]
[
-p proclist
]
[
-s sidlist
] [
-t term
] [
-u uidlist
]
[
-U uidlist
]
[
-G gidlist
]
DESCRIPTION
The
ps
command prints information about active processes.
Without options,
ps
prints information about processes associated
with the controlling terminal.
The output contains
only the process ID,
terminal identifier, cumulative execution time,
and the command name.
Otherwise, the information that is displayed
is controlled by the options.
Some options accept lists as arguments.
Items in a list can be either separated by commas or else enclosed
in quotes and separated by commas or spaces.
Values for
proclist and grplist
must be numeric.
OPTIONS
The following options are supported:
- -a
-
List information about all processes most frequently requested:
all those except process
group leaders and processes not associated with a terminal.
- -A
-
List information for all processes.
Identical to
-e,
below.
- -c
-
Print information in a format that reflects scheduler properties
as described in
priocntl.1
The
-c
option affects the output of the
-f
and
-l
options, as described below.
- -d
-
List information about all processes except session leaders.
- -e
-
List information about every process now running.
- -f
-
Generate a full listing.
(See below for significance of columns in a full listing.)
- -g grplist
-
List only process data
whose group leader's ID number(s) appears in grplist.
(A group leader is a process whose process ID number is identical
to its process group ID number.)
- -G gidlist
-
List 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
-
Print session ID and process group ID.
- -l
-
Generate a long listing.
(See below.)
- -L
-
Print information about each light weight process
(lwp)
in each selected process.
(See below.)
- -n namelist
-
Specify the name of an alternative system
namelist
file in place of the default.
This option is accepted for compatibility, but is ignored.
- -o format
-
Print 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 will be interpreted
as the space-character-separated concatenation of all the
format
option-arguments.
- -p proclist
-
List only process data
whose process
ID
numbers are given
in proclist.
- -P
-
Print the number of the processor to which the process or lwp is bound,
if any, under an additional column header,
PSR.
- -s sidlist
-
List information on all session leaders
whose IDs appear in sidlist.
- -t term
-
List 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.
- -u uidlist
-
List 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
-
List 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),
omit the obsolete
F
and
ADDR
columns and include 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.
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 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 will be 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.
- Z
-
Zombie state: process terminated
and parent not waiting.
- T
-
Process is stopped, either by a job control signal
or because it is being traced.
- 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 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.
- 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
TIME
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
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 overridden 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 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
-
will represent the number of days,
- hh
-
the number of hours,
- mm
-
the number of minutes, and
- ss
-
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
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 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 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 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 decimal integer.
- sid
-
The process ID of the session leader.
- 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.
- 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.
- 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.
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 Specifier Default Header | Format Specifier Default 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 Specifier Default Header | Format Specifier Default Header |
+----------------------------------+-----------------------------------+
|addr ADDR | pri PRI |
|c C | psr PSR |
|class CLS | rgid RGID |
|f F | rss RSS |
|fname COMMAND | ruid RUID |
|gid GID | s S |
|lwp LWP | sid SID |
|nlwp NLWP | stime STIME |
|opri PRI | uid UID |
|osz SZ | wchan WCHAN |
|pmem %MEM | |
+----------------------------------+-----------------------------------+
EXAMPLES
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
See
environ.5
for descriptions of the following environment variables that affect the
execution of
ps:
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
- /tmp/ps_data
-
internal data structure
ATTRIBUTES
See
attributes.5
for descriptions of the following attributes:
+---------------+---------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+---------------------+
|Availability | SUNWcsu |
|CSI | Enabled (see NOTES) |
+---------------+---------------------+
SEE ALSO
kill.1
nice.1
pagesize.1
priocntl.1
who.1
getty.1m
proc.4
ttysrch.4
attributes.5
environ.5
NOTES
Things can change while
ps
is running; the snap-shot it gives is true only for a
split-second, and it may not be accurate by the time you see it.
Some data printed for defunct processes is irrelevant.
If no options to select processes are specified,
ps
will report all processes associated with the controlling terminal.
If there is no controlling 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).
Created by unroff & hp-tools.
© by Hans-Peter Bischof. All Rights Reserved (1997).
Last modified 07/October/97