Content-type: text/html Man page of ps

ps

Section: User Commands (1)
Index Return to Main Contents
 

NAME

ps - Displays current process status  

SYNOPSIS


 

Current XPG4-UNIX Syntax

ps [-aAdejflm] [-o specifier][=header],... [-O specifier][=header],... [-g glist] [-G glist] [-p plist] [-s slist] [-t tlist] [-u ulist] [-U ulist] [-n nlist]


 

BSD Compatible Syntax

ps [aAeghjlLmsSTuvwx] [o specifier][=header],... [O specifier][=header],... [t tty] [process_number]

The ps command displays the current process status.
 

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows:

ps:  XPG4, XPG4-UNIX

Refer to the standards(5) reference page for more information about industry standards and associated tags.
 

OPTIONS


 

Current Syntax

The following options can be used with ps: Prints information to standard output about all processes, except the session leaders and processes not associated with a terminal. Writes information for all processes. Prints information to standard output about all processes, except the session leaders. Prints information to standard output about all processes. Equivalent to -A. Generates a full listing. Prints only information about processes that are in the process groups listed in glist. The glist is a list of process-group identifiers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. Writes information for processes whose real group ID numbers or names are given in glist. The glist is a list of process-group identifiers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. [Compaq]  Produces job control information, with fields specified for user, pid, ppid, pgid, sess, jobc, state, tname, time and command. Generates a long listing. [Compaq]  Prints all threads in a task, if the task has more than one. Specifies a list of format specifiers to describe the output format.

Multiple -o options may be specified. The final output is a concatenation of all options specified.
[Compaq]  If the -O option is used with one or more -o options, the -O option must appear first on the command line. [Compaq]  Same as the -o option, except it displays the fields specified by pid, state, tname, time, and command in addition to the specifiers supplied on the command line.
[Compaq]  The -O option may be used with one or more -o options. The result is a concatenated output. The -O option must be specified first. Historically, used to specify an alternative system file name list, nlist, in place of the default.
[Compaq]  The name list concept (see the nlist(3) reference page) does not apply to the Tru64 UNIX ps command; consequently, the -n option is ignored. Displays only information about processes with the process numbers specified in plist. The plist argument is either a list of process ID numbers or a list of process ID numbers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. [Compaq]  Enables warning messages. [Compaq]  Displays information about processes belonging to the sessions specified in slist. The slist argument is either a list of session ID numbers or a list of session ID numbers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces (or tabs), or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists. Displays only information about processes associated with the terminals listed in tlist. The tlist argument is either a list of terminal identifiers or a list of terminal identifiers enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces, or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists.
Terminal identifiers must be in one of two forms: The device's file name The device's digit identifier, if the device's file name begins with tty Displays only information about processes with the user ID numbers or login names specified in ulist. The ulist argument is either a list of user IDs or a list of user IDs enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces, or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists.
In the listing, ps displays the numerical user ID unless the -f option is used; then it displays the login name. Writes information for processes whose real user ID numbers or login names are given in ulist. The ulist argument is either a list of user IDs or a list of user IDs enclosed in " " (double quotes) and separated from one another by a comma or one or more spaces, or both. Because of the way the shell treats spaces and tabs, you need to quote space-separated lists.
 

BSD Compatible Syntax

[Compaq]  The following BSD compatible options can be used with ps (note that these options are not prefixed with a - (dash) character): [Compaq]  Asks for information regarding processes associated with terminals (ordinarily only one's own processes are displayed). [Compaq]  Increases the argument space. [Compaq]  Asks for the environment to be printed, as well as the arguments to the command. [Compaq]  Asks for all processes. Without this option, ps only prints interesting processes. Processes are deemed to be uninteresting if they are process group leaders. This normally eliminates top-level command interpreters and processes waiting for users to log in on free terminals. [Compaq]  Repeats the header after each screenful of information. [Compaq]  Produces job control information, with fields specified by user, ppid, pgid, sess, and jobc. [Compaq]  Asks for a detailed list, with fields specified by ppid, cp, pri, nice, vsize, rssize and wchan. [Compaq]  Lists all available format specifiers. [Compaq]  Prints all threads in a task, if the task has more than one. [Compaq]  Specifies a list of format specifiers to describe the output format. [Compaq]  Same as o, except it displays the fields specified by pid, state, tname, cputime, and comm in addition to the specifiers supplied on the command line. [Compaq]  Gives signal states of the processes, with fields specified by uid, cursig, sig, sigmask, sigignore, and sigcatch. [Compaq]  Prints usage summaries (total usage of a command, as opposed to current usage). [Compaq]  Lists only processes for the specified terminal. [Compaq]  Lists all processes on your terminal. [Compaq]  Produces a user oriented output. This includes fields specified by user, pcpu, pmem, vsize, rssize, and start. [Compaq]  Produces a version of the output containing virtual memory statistics. This includes fields specified by cputime, sl, pagein, vsize, rssize, pcpu, and pmem. [Compaq]  Uses a wide output format (132 columns (bytes) rather than 80); if this option is doubled (ww), uses an arbitrarily wide output. This information determines how much of long commands to print. [Compaq]  Asks even about processes with no terminal.
 

OPERANDS


 

Current Syntax

None
 

BSD Compatible Syntax

[Compaq]  Restricts output to the specified process. This argument must be entered last on the command line.
 

DESCRIPTION

While ps is a fairly accurate snapshot of the system, ps cannot begin and finish a snapshot as fast as some processes change state. At times there may be minor discrepancies.

The ps command can be used on multiprocessing systems and for querying the system state of realtime applications for their POSIX priority and scheduling policy.

Output formats for each process include the process ID (pid), control terminal of the process (tname), CPU time used by the process (cputime) (this includes both user and system time), the state of the process (state), and an indication of the command that is running (command). The abbreviation tty indicates a terminal.

[Compaq]  The state is given by a sequence of letters, for example, RWN. The first letter indicates the status of the process: [Compaq]  Runnable process. [Compaq]  Uninterruptible sleeping process. [Compaq]  Process sleeping for less than about 20 seconds. [Compaq]  Idle (sleeping longer than about 20 seconds) process. [Compaq]  Stopped process. [Compaq]  Halted process.

[Compaq]  Additional characters after these, if any, indicate additional state information: [Compaq]  Process is swapped out (shows a blank space if the process is loaded (in-core)). [Compaq]  Process has specified a soft limit on memory requirements and is exceeding that limit; such a process is (necessarily) not swapped.

[Compaq]  An additional letter may indicate whether a process is running with altered CPU scheduling priority (nice): [Compaq]  Process priority is reduced. [Compaq]  Process priority has been artificially raised. [Compaq]  Process is a process group leader with a controlling terminal.
 

Format Specifiers

The following list contains all format specifiers that can be used with ps:


SpecifierHeaderMeaning

acflagACFLG [Compaq]  Process accounting flag
argsCOMMANDCommand arguments
cCCPU utilization factor for scheduling
cmdCMD [Compaq]  Command arguments
commCOMMANDCommand name for accounting
commandCOMMAND [Compaq]  Command arguments (and environment with BSD e option)
cpCP [Compaq]  Short-term CPU utilization factor (used in scheduling)
cputimeTIME [Compaq]  Current CPU time used
cursigCURSIG[Compaq]  Current signal
etimeELAPSEDTime command has been running
flagF[Compaq]  Process flags
groupGROUPGroup name
inblockINBLK [Compaq]  Block input operations
jobcJOBC [Compaq]  Current count of processes qualifying PGID for job control
lognameLOGNAME [Compaq]  User's login name
longtnameTTY [Compaq]  Long controlling terminal device name
lstartSTARTED [Compaq]  Start date and time of process
majfltMAJFLT[Compaq]  Page faults
minfltMINFLT[Compaq]  Page reclaims
msgrcvMSGRCV [Compaq]  Messages received
msgsndMSGSND[Compaq]  Messages sent
niceNI Process scheduling increment (see the setpriority() call).
nivcswIVCSW [Compaq]  Involuntary context switches
nsignalsNSIGS [Compaq]  Signals received
nswapNSWAP[Compaq]  Swaps
nvcswVCSW [Compaq]  Voluntary context switches
nwchanWCHAN [Compaq]  Address of event on which a process is waiting (an address in the system). In this case, the initial part of the address is trimmed off and is printed hexadecimally, for example, 0x80004000 prints as 4000.
oublockOUBLK [Compaq]  Block output operations
pageinPAGEIN [Compaq]  Number of disk I/Os resulting from references by the process to pages not loaded in core.
pcpu%CPU Percent CPU usage. This is a decaying average of up to a minute of previous (real) time. Since the time base over which this is computed varies (since processes may be very young), it is possible for the sum of all %CPU fields to exceed 100%.
pgidPGIDProcess group ID
pidPIDProcess ID
pmem%MEM [Compaq]  Percent real memory usage
policyPOL [Compaq]  Current scheduling policy
ppidPPIDParent process ID
priPRI [Compaq]  Process priority
psetPSET [Compaq]  Current processor set (^ means bound)
psrPSR [Compaq]  Current processor (~ means bound)
psxpriPPR [Compaq]  POSIX scheduling priority
rgidRGID [Compaq]  Process group (real GID)
rgroupRGROUPReal group name
rssizeRSS [Compaq]  Real memory (resident set) size of the process (in 1024 byte units)
ruidRUID [Compaq]  Process user ID (real UID)
ruserRUSERUser ID
scountSCNT[Compaq]  Suspend count
sessSESS[Compaq]  Session ID
sigPENDING [Compaq]  Signals pending to this process
sigcatchCAUGHT [Compaq]  Signals being caught
sigignoreIGNORED [Compaq]  Signals being ignored
sigmaskBLOCKED [Compaq]  Current signal mask
slSL[Compaq]  Sleep time
startSTARTED [Compaq]  Start time of process. If start time was more than 24 hours ago, gives the date.
stateS [Compaq]  Symbolic process status
statusSTATUS[Compaq]  Process status
stimeSTARTED Start time of process. If start time was more than 24 hours ago, gives the date.
svgidSVGID [Compaq]  Saved process group ID
svuidSVUID [Compaq]  Saved process user ID
systimeSYSTEM [Compaq]  Time spent in system
tdevTDEV [Compaq]  Major/minor device for controlling terminal
timeTIMECurrent CPU time used
tnameTTY [Compaq]  Controlling terminal device name
tpgidTPGID [Compaq]  Foreground process group associated with terminal
tsessionTSESS [Compaq]  Session associated with terminal
ttTTYControlling terminal device name
ttyTTYControlling terminal device name
ucommCOMMAND [Compaq]  Command name for accounting
uidUID [Compaq]  Process user ID (effective UID)
umaskUMASK[Compaq]  Process umask
userUSERUsername
usertimeUSER [Compaq]  Time spent in user space
usrpriUPR [Compaq]  Base scheduling priority
u_procpUPROCP [Compaq]  Address of process in user area
vsizeVSZ [Compaq]  Process virtual address size
vszVSZProcess virtual address size
wchanWCHAN [Compaq]  Address of event on which a process is waiting (an address in the system). A symbol is chosen that classifies the address, if available, from the system; otherwise, it is printed numerically.


 

Compound Format Specifiers

[Compaq]  Compound format specifiers are made up of groups of individual format specifiers, as follows:


SpecifierMeaning

RUSAGE [Compaq]  minflt, majflt, nswap, inblock, oublock, msgsnd, msgrcv, nsigs, nvcsw, nivcsw
THREAD [Compaq]  user, pcpu, pri, scnt, wchan, usertime, systime
DFMT (default printing format) [Compaq]  pid, tname, state, cputime, command
LFMT (BSD l format) [Compaq]  uid, pid, ppid, cp, pri, nice, vsz, rss, wchan, state, tname, cputime, command
JFMT (j format) [Compaq]  user, pid, ppid, pgid, sess, jobc, state, tname, cputime, command
SFMT (BSD s format) [Compaq]  uid, pid, cursig, sig, sigmask, sigignore, sigcatch, stat, tname, command
VFMT (BSD v format) [Compaq]  pid, tt, state, time, sl, pagein, vsz, rss, pcpu, pmem, command
UFMT (BSD u format) [Compaq]  uname, pid, pcpu, pmem, vsz, rss, tt, state, start, time, command
F5FMT (f format) [Compaq]  uname, pid, ppid, pcpu, start, tt, time, command
L5FMT (l format) [Compaq]  f, state, uid, pid, ppid, pcpu, pri, nice, rss, wchan, tt, time, ucomm
FL5FMT (lf format) [Compaq]  f, state, uid, pid, ppid, pcpu, pri, nice, rss, wchan, start, time, command
SCHED [Compaq]  user, pcpu, pri, usrpri, nice, psxpri, psr, policy, pset


 

Process Flags

The flags associated with process in <sys/proc.h> are as follows:


Symbolic Constant Flag ValueMeaning

SLOAD0x00000001In core
SSYS0x00000002 [Compaq]  Swapper or pager process
SLOMAP0x00000004Process allowed to use low virtual memory
SNOTASK0x00000040Process completed exit
SWWAIT0x00000080Thread is removing zombie
SOMASK0x00000200Restore old mask after taking signal
SWEXIT0x00000400Working on exiting
SPHYSIO0x00000800Doing physical I/O
SVFORK0x00001000 Process resulted from vfork()
SPAGV0x00008000Init data space on demand, from vnode
SSEQL0x00010000User warned of sequential vm behavior
SUANOM0x00020000User warned of random vm behavior
SCONTIGN0x00040000Process is ignoring SIGCONT
S11700X00080000 Process is using Single UNIX(R) Specification signal behaviors
SLOGIN0x00400000 Process marked as a login for Capacity Limitation
SCTTY0x00800000Process has a controlling terminal
SXONLY0x02000000Process image read-protected
SAIO0x08000000Process performed asynchronous I/O
SNOCLDWAIT0x20000000No zombies when children exist
SNOCLDSTOP0x40000000 No SIGCHLD when children stop
SEXEC0x80000000Process called exec

A process that has exited but whose parent process has not waited for it. [Compaq]  A process for which user area information could not be obtained due to a shortage of system memory. A process that is blocked trying to exit.
 

NOTES

[Compaq]  The following BSD compatible options are not supported. (You can reconstruct the output of these options by using the appropriate format specifiers, however.) [Compaq]  Displays the command name, as stored internally in the system for purposes of accounting, rather than the command arguments, which are kept in the process's address space. [Compaq]  Displays numeric output. In a long listing, the wchan field is printed numerically rather than symbolically. In a user listing, the user field is replaced by a uid field. The arguments displayed by args and command format specifiers reflect the arguments passed to the command at its invocation. Any modification made to the arguments by the running command are not available. The arguments displayed by args and command format specifiers are the only output fields that contain embedded blanks, which may be a concern if the output is passed to some type of parser. Since output fields appear in the order of the format specifiers on the command line, you should put these specifiers at the end of the command if you are using a parser to analyze the output.
 

RESTRICTIONS

[Compaq]  When you enter a ps command while running an application that forks child processes, you might see some child processes listed as being in the <defunct> state after they have exited. Processes in this state cannot be killed until the process that forked them is killed.

[Compaq]  The system puts exiting child processes in the <defunct> state if their parent process is still running and has not caught the SIGCHLD signal or executed a wait() system call.
[Compaq]  To avoid having users encounter this problem when they run your application, make sure that your program logic either catches the SIGCHLD signal or executes a wait() system call when spawning a child process. [Compaq]  It is an error to use two format specifiers, such as comm and ucomm or command and args that are really synonyms for the same output request. [Compaq]  It is an error to use two or more compound format specifiers that contain the same simple format specifier, or to use a simple format specifier with a compound format specifier that includes the simple specifier.
 

EXIT STATUS

The following exit values are returned: Successful completion. An error occurred.
 

EXAMPLES

To list all your processes, enter: ps To list all processes, enter: ps -A

The BSD equivalent looks like this: ps ax To list processes owned by specific users, enter: ps -f -l -ujim,jane,su To list processes associated with a specific terminal, enter: ps -t console
The BSD equivalent looks like this: ps tco To display only the pid, user, and comm information for all processes, enter: ps -o pid,user,comm -A To display the parent process ID under the header PARENT, as well as the default headers (fields specified by pid, state, tname, time, command), enter: ps -O ppid=PARENT The following ps command shows the use of the SCHED specifier on a two-processor system with two processor sets:
ps -O SCHED

PID USER %CPU PRI UPR NI PPR PSR POL PSET S TTY TIME COM 458 root 0.0 43 44 0 20 0 TS 0 I + console 0:01.34 csh 561 root 0.0 44 44 0 19 0 TS 0 I ttyp0 0:00.42 csh 567 root 0.0 44 44 0 19 1 TS ^2 I ttyp0 0:00.03 runon 568 root 0.0 44 44 0 19 1 TS ^2 I ttyp0 0:00.03 sh 569 root 0.0 44 44 0 19 1 TS ^2 S ttyp0 0:00.31 csh 579 root 0.0 44 44 0 19 ~1 TS ^2 S + ttyp0 0:00.03 runon 580 root 0.0 44 44 0 19 ~1 TS ^2 S + ttyp0 0:00.03 sh 581 root 0.0 44 44 0 19 ~1 TS ^2 R + ttyp0 0:00.06 ls -l

The display shows that all processes are running under the default timershare scheduling policy. Processes 458 and 561 are running unbound to processor 0 in processor set 0. Processes 567, 568, and 569, are running on processor 1 and are bound exclusively (^) to processor set 2. Processes 579, 580, and 581 are running bound to processor 1 (~) and are bound exclusively to processor set 2 (^). To display the name of the shell you are currently running, enter: ps -p $$

 

ENVIRONMENT VARIABLES

The following environment variables affect the execution of ps: Overrides the horizontal screen size, used to determine the number of text columns to display. Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the format and contents of the date and time strings displayed. Determines the location of message catalogues for the processing of LC_MESSAGES.
 

FILES

Searched to find terminal names. Process information.
 

SEE ALSO

Commands:  kill(1), nice(1), renice(8), runon(1), w(1)

Functions:  exit(2), fork(2), getpriority(2), exec(2), wait(2)

Routines:  nlist(3), sched_setscheduler(3)

Files:  processor_sets(4)

Standards:  standards(5)


 

Index

NAME
SYNOPSIS
Current XPG4-UNIX Syntax
BSD Compatible Syntax
STANDARDS
OPTIONS
Current Syntax
BSD Compatible Syntax
OPERANDS
Current Syntax
BSD Compatible Syntax
DESCRIPTION
Format Specifiers
Compound Format Specifiers
Process Flags
NOTES
RESTRICTIONS
EXIT STATUS
EXAMPLES
ENVIRONMENT VARIABLES
FILES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:43:02 GMT, October 02, 2010