ps(1) manual page
Table of Contents
ps - report process status
ps [ -aAcdefjl ] [ -g grplist
] [ -n namelist ] [[ -o format ] ... ] [ -p proclist ] [ -s sidlist ] [ -t
term ] [ -u uidlist ] [ -U uidlist ] [ -G gidlist ]
SUNWcsu
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.
The following options are supported:
- -a
- Print information about all processes most frequently requested: all
those except process group leaders and processes not associated with a
terminal.
- -A
- Write information for all processes.
- -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
- Print information about all processes except session leaders.
- -e
- Print
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
- Write 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.)
- -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
- Write 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.
- -s sidlist
- List information on all session
leaders whose ID
s 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
- Write 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.
With the exception of -o format, all of the options shown are used to select
processes. 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.
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 size (in pages)
of the swappable process’s image in main memory.
- 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.
A process that has exited and
has a parent, but has not yet been waited for by the parent, is marked
<defunct>.
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 size
of the process in (virtual) memory in kilobytes as a decimal integer.
- 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.
- addr
- The memory address of the process.
- osz
- The size
(in pages) of the swappable process’s image in main memory.
- 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 as a decimal integer.
- 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 | rgid | RGID |
class | CLS | rss | RSS |
f | F | ruid | RUID |
fname | COMMAND | s | S |
gid | GID | sid | SID |
opri | PRI | stime | STIME |
osz | SZ | uid | UID |
pmem | %MEM | wchan | WCHAN |
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.
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.
The
following exit values are returned:
- Successful completion.
- >0
- An error occurred.
/dev/pts/*
- /dev/term/*
- terminal (‘‘tty’’) names searcher files
- /etc/passwd
- UID
information supplier
- /proc/*
- process control files
- /tmp/ps_data
- internal
data structure
kill(1)
, nice(1)
, priocntl(1)
, who(1)
, getty(1M)
,
proc(4)
, ttysrch(4)
, environ(5)
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.
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.
Table of Contents