ps(1)


ps -- report process status

Synopsis

ps [options]

Description

The ps command prints information about active processes and lightweight processes, or LWPs. 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.

If the Enhanced Security Utilities are installed and running, an unprivileged user can display information only about processes that the user owns and whose Mandatory Access Control level is dominated by the user's current level. A user with the appropriate privileges can display information about all processes.

Some options accept lists as arguments. Items in a list can be either separated by commas or else enclosed in double quotes and separated by commas or spaces. Values for proclist and grplist must be numeric.

The options are:

-a
Print information about all processes most frequently requested: all those except session leaders and processes not associated with a terminal.

-A
Print information about 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 grplist
List process data whose real group ID number(s) appears in grplist.

-j
Print session ID and process group ID.

-l
Generate a long listing. (See below.)

-L
Print status of active LWPs within a process.

-o format
List information according to the format specified in format. Multiple -o options can be specified. See ``Specifying output format''.

-p proclist
List only process data whose process ID numbers are given in proclist.

-P
Print the processor number on which an LWP is running when the LWP has been explicitly bound by a user.

-r sysnam
Change the root directory to that specified by sysnam which can be an absolute pathname or a system name. If a system name is given, ps will use the first filesystem entry in /etc/mnttab whose last component matches sysnam. A proc directory must exist at the path implied by sysnam.

-s sidlist
List information on all session leaders whose IDs appear in sidlist.

-t termlist
List only process data associated with the terminal given in termlist. Terminal identifiers may be specified in one of two forms: the device's file name (for example, term/04) or, if the device's file name starts with term, just the digit identifier (for example, 04). -f option, which prints the login name.

-u uidlist
List only process data whose user ID number or login name is given in uidlist. In the listing, the numerical user ID will be printed unless you give the

-U uidlist
List process data only for processes whose real user ID or login names are in uidlist.

-y
Must be combined with -l option. Changes the long listing: prints the ``RSS'' and ``SZ'' fields in kilobytes and does not print the ``F'' and ``ADDR'' fields.

-z
Print the alias of the Mandatory Access Control level at which the process is running; valid only if the Enhanced Security Utilities are installed.

-Z
Print the fully qualified Mandatory Access Control level at which the process is running; valid only if the Enhanced Security Utilities are installed.

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.

Output

The column headings and the meaning of the columns in a ps listing are given below; the letters f and l identify the option (full or long, respectively) that causes the corresponding heading to appear; all means that the heading always appears.

Note that 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, or the LWP if the -L option is specified.

00
Process has terminated: process table entry now available.

01
A system process: always in primary memory.

02
Parent is tracing process.

04
Tracing parent's signal has stopped process: parent is waiting (ptrace(2)).

08
Process is currently in primary memory.

10
Process currently in primary memory: locked until an event completes.

20
Process cannot be swapped.

S(l)
The state of the process, or the LWP if the -L option is specified:

O
Process is running on a processor.

S
Sleeping: process is waiting for an event to complete.

R
Runnable: process is on run queue.

I
Idle: process is being created.

Z
Zombie state: process terminated and parent not waiting.

T
Traced: process stopped by a signal because parent is tracing it.

X
SXBRK state: process is waiting for more primary memory.

UID(f,l)
The user ID number of the process owner of the LWP (the login name is printed under the -f option).

PID(all)
The process ID of the LWP (This information is necessary to kill a process). When a process is multithreaded, a PID appears for each active process.

PPID(f,l)
The process ID of the parent process.

CLS(f,l)
Scheduling class for the process, or the LWP when the -L option is specified. Printed only when the -c option is used.

NI(l)
The nice value of the process (if supported by the process's scheduling class).

PRI(l)
The priority of the process, or the LWP when the -L option is specified. Without the -c option, higher numbers mean lower priority. With the -c option, higher numbers mean higher priority.

ADDR (l)
The memory address of the process.

SZ (l)
The size (in pages or clicks) of the virtual address space of the process. When the -y option is specified, the size is in kilobytes.

WCHAN (l)
The address of an event for which the process is sleeping or in SXBRK state; if blank, the process is running. For an individual LWP if -L is specified.

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

LTIME
The execution time for an individual LWP.

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.

COMD (all)
The command name (the full command name and its arguments are printed under the -f option). If the POSIX2 environment variable is set, CMD is printed instead of COMD.

NLWP
The number of LWPs in the process.

PSR
The processor id of the processor on which the LWP is running when the user has explicitly bound the LWP to a particular processor. When a ``-'' is listed, the LWP has not been explicitly bound, but is executing on a scheduler-assigned processor.

RSS
Stable resident set size in kilobytes.

A process that has exited and has a parent, but has not yet been waited for by the parent, is marked <defunct>.

Specifying output format

The following table shows the format keywords you can specify with the -o format option. Multiple -o options can be specified.

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. RUSER
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. USER
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. RGROUP
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. GROUP
pid The decimal value of the process ID. PID
ppid The decimal value of the parent process ID. PPID
pgid The decimal value of the process group ID. PGID
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. %CPU
vsz The size of the process in (virtual) memory in kilobytes as a decimal integer. VSZ
nice The decimal value of the system scheduling priority of the process. See nice(1). NI
etime 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. ELAPSED
time The cumulative CPU time of the process in the form: [[dd-]hh:]mm:ss as described above for etime. TIME
tty The name of the controlling terminal of the process (if any) in the same format used by the who(1) utility. TT
comm The name of the command being executed (argv [0] value) as a string. COMMAND
args The command with all its arguments as a string. COMMAND

 
 ruser    The real user ID of   RUSER 
          the process. This 
          will be the textual 
          user ID, if it can 
          be obtained and the 
          field width 
          permits, or a 
          decimal 
          representation 
          otherwise. 
 user     The effective user    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. 
 rgroup   The real group ID     RGROUP 
          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. 
 group    The effective group   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     PID 
          of the process ID. 
 ppid     The decimal value     PPID 
          of the parent 
          process ID. 
 pgid     The decimal value     PGID 
          of the process 
          group ID. 
 pcpu     The ratio of CPU      %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       VSZ 
          process in 
          (virtual) memory in 
          kilobytes as a 
          decimal integer. 
 nice     The decimal value     NI 
          of the system 
          scheduling priority 
          of the process. 
          See nice(1) 
 etime    The elapsed time      ELAPSED 
          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     The cumulative CPU    TIME 
          time of the process 
          in the form: 
          [[dd-]hh:]mm:ss as 
          described above for 
          etime. 
 tty      The name of the       TT 
          controlling 
          terminal of the 
          process (if any) in 
          the same format 
          used by the who(1) 
          utility. 
 comm     The name of the       COMMAND 
          command being 
          executed (argv [0] 
          value) as a string. 
 args     The command with      COMMAND 
          all its arguments 
          as a string. 

Files

/dev

/dev/sxt/*

/dev/term/*

/dev/xt/*
terminal (tty) names searcher files

/proc/*
process information

/etc/passwd
UID information supplier

/etc/ps_data
internal data structure

/usr/lib/locale/locale/LC_MESSAGES/uxcore
language-specific message file (See LANG on environ(5).)

References

getty(1M), kill(1), nice(1), priocntl(1)

Notices

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 termlist, proclist, uidlist, or grplist is specified, ps checks stdin, stdout, and stderr in that sequence, looking for the controlling terminal and attempts to report on processes associated with the controlling terminal. In this case, if stdin, stdout, and stderr are all redirected, ps will not find a controlling terminal, so there will be no report.

ps -ef may not report the start of a tty login session, but rather an earlier time, when a getty was last respawned on the tty line.

The -y option has no effect unless combined with the -l option. It is identical to the -x option in System V Release 4 MP.


30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.