Shows status of processes. This document describes the standard AIX® ps command as well as the System V version of the ps command.
X/Open Standards
ps [ -A ] [ -M ] [ -N ] [ -Z ] [ -a ] [ -d ] [ -e ] [ -f ] [ -k ] [ -l ] [ -F format] [ -o Format ] [ -c Clist ] [ -G Glist ] [ -g Glist ] [ -m ] [ -n NameList ] [ -p Plist ] [ -P ] [ -t Tlist ] [ -U Ulist ] [ -u Ulist ] [ -T pid ] [ -L pidlist ] [ -X ] [ -@ [ WparName ] ]
Berkeley Standards
ps [ a ] [ c ] [ e ] [ ew ] [ eww ] [ ewww ] [ g ] [ n ] [ w ] [ x ] [ l | s | u | v ] [ t tty ] [ X ] [ ProcessNumber ]
The ps command writes the status of active processes and if the -m flag is given, displays the associated kernel threads to standard output. While the -m flag displays threads associated with processes using extra lines, you must use the -o flag with the THREAD field specifier to display extra thread-related columns.
Without flags, the ps command displays information about the current terminal. The -f, -o, l, -l, s, u, and v flags only determine how much information is provided about a process; they do not determine which processes are listed. The l, s, u, and v flags are mutually exclusive.
With the -o flag, the ps command examines memory or the paging area and determines what the command name and parameters were when the process was created. If the ps command cannot find this information, the command name stored in the kernel is displayed in square brackets.
The COLUMNS environment variable overrides the system-selected, horizontal screen size.
The command-line flags that accept a list of parameters (the -o, -G, -g, -p, -t, -U, and -u flags) are limited to 128 items. For example, the -u Ulist flag can specify no more than 128 users.
For cases in which the output of the ps command does not include workload partition (WPAR) names but does include Project IDs (PROJECT), User IDs (UID or USER), or Group IDs (GID) associated with a process running within a workload partition under the current operating environment, the IDs are preceded by a plus sign (+) to indicate the association with a workload partition. Each workload partition contains its own definition of users, groups, and project IDs that may be different from the IDs defined for the global environment. The -@ option may be specified to include workload partition names in the output.
Depending on the flags used with the ps command, column headings are displayed above the information displayed to standard output. The headings are defined in the following list (flags that cause these headings to be displayed are shown in parentheses):
Flags | Hexadecimal Value | Definition |
---|---|---|
SLOAD | 0x00000001 | Indicates that the process is operating in core memory. |
SNOSWAP | 0x00000002 | Indicates that the process cannot be swapped out. |
STRC | 0x00000008 | Indicates that the process is being traced. |
SWTED | 0x00000010 | Indicates that the process stopped while being traced. |
SFWTED | 0x00000020 | Indicates that the process stopped after a call to the fork subroutine, while being traced. |
SEWTED | 0x00000040 | Indicates that the process stopped after a call to the exec subroutine, while being traced. |
SLWTED | 0x00000080 | Indicates that the process stopped after a call to the load or unload subroutine, while being traced. |
SFIXPRI | 0x00000100 | Indicates that the process has a fixed priority, ignoring the pcpu field descriptor. |
SKPROC | 0x00000200 | Indicates a Kernel process. |
SOMASK | 0x00000400 | Indicates restoration of the old mask after a signal is received. |
SWAKEONSIG | 0x00000800 | Indicates that the signal will abort the sleep subroutine. The contents must not be equal to those of the PCATCH flag. The contents of both PCATCH and SWAKEONSIG must be greater than those of PMASK. |
SUSER | 0x00001000 | Indicates that the process is in user mode. |
SLKDONE | 0x00002000 | Indicates that the process has done locks. |
STRACING | 0x00004000 | Indicates that the process is a debugging process. |
SMPTRACE | 0x00008000 | Indicates multi-process debugging. |
SEXIT | 0x00010000 | Indicates that the process is exiting. |
SSEL | 0x00020000 | Indicates that the processor is selecting: wakeup/waiting danger. |
SORPHANPGRP | 0x00040000 | Indicates an orphaned process group. |
SNOCNTLPROC | 0x00080000 | Indicates that the session leader relinquished the controlling terminal. |
SPPNOCLDSTOP | 0x00100000 | Indicates that the SIGHLD signal is not sent to the parent process when a child stops. |
SEXECED | 0x00200000 | Indicates that process has been run. |
SJOBSESS | 0x00400000 | Indicates that job control was used in the current session. |
SJOBOFF | 0x00800000 | Indicates that the process is free from job control. |
PSIGDELIVERY | 0x01000000 | Indicates that the process is used by the program-check handler. |
SRMSHM | 0x02000000 | Indicates that the process removed shared memory during a call to the exit subroutine. |
SSLOTFREE | 0x04000000 | Indicates that the process slot is free. |
SNOMSG | 0x08000000 | Indicates that there are no more uprintf subroutine messages. |
Flags | Hexadecimal Value | Definition |
---|---|---|
SLOAD | 0x00000001 | Indicates that the process is operating in core memory. |
SNOSWAP | 0x00000002 | Indicates that the process cannot be swapped out. |
STRC | 0x00000008 | Indicates that the process is being traced. |
SKPROC | 0x00000200 | Indicates a kernel process. |
SEXIT | 0x00010000 | Indicates that the process is exiting. |
SLPDATA | 0x00020000 | Indicates that the process uses large pages. |
SEXECED | 0x00200000 | Indicates that the process has been run. |
SEXECING | 0x01000000 | Indicates that the process is execing (performing an exec). |
SPSEARLYALLOC | 0x04000000 | Indicates that paging space for this process is allocated early. |
TKTHREAD | 0x00001000 | Indicates that the thread is a kernel-only thread. |
For processes:
For kernel threads:
The following flags are preceded by a - (minus sign):
Item | Description |
---|---|
-A | Writes to standard output information about all processes. |
-a | Writes to standard output information about all processes, except the session leaders and processes not associated with a terminal. |
-c Clist | Displays only information about processes assigned to the workload management classes listed in the Clist variable. The Clist variable is either a comma-separated list of class names or a list of class names enclosed in double quotation marks (" "), which is separated from one another by a comma or by one or more spaces, or both. |
-d | Writes information to standard output about all processes, except the session leaders. |
-e | Writes information to standard output about all processes, except kernel processes. |
-F Format | Same as the -o Format |
-f | Generates a full listing. |
-G Glist | Writes information to standard output only about processes that are in the effective groups listed for the Glist variable. The Glist variable is either a comma-separated list of effective group identifiers, or a list of effective group identifiers enclosed in double quotation marks (" ") and separated from one another by a comma or by one or more spaces. |
-g Glist | Writes information to standard output only about processes that are in the process groups listed for the Glist variable. The Glist variable is either a comma-separated list of process group identifiers or a list of process group identifiers enclosed in double quotation marks (" ") and separated from one another by a comma or by one or more spaces. |
-k | Lists kernel processes. |
-l | Generates a long listing. Also see the l flag. |
-L pidlist | Generates a list of descendants of each and every pid that has been passed to it in the pidlist variable. The pidlist variable is a list of comma-separated process IDs. The list of descendants from all the given pid is printed in the order in which they appear in the process table. |
-M | Lists all 64 bit processes. |
-m | Lists kernel threads as well as processes. Output lines for processes are followed by an additional output line for each kernel thread. This flag does not display thread-specific fields (bnd, scount, sched, thcount, and tid), unless the appropriate -o Format flag is specified. |
-N | Gathers no thread statistics. With this flag, ps reports those statistics that can be obtained by not traversing through the threads chain for the process. |
-n NameList | Specifies an alternative system name-list file in place of the default. The operating system does not use the -n flag because information is supplied directly to the kernel. |
-o Format | Displays information in the format specified by the Format variable.
Multiple field specifiers can be specified for the Format variable.
The Format variable is either a comma-separated list of field
specifiers or a list of field specifiers enclosed within a set of
" " (double-quotation marks) and separated from one another by a comma
or by one or more spaces, or both. Each field specifier has a default header. The default header can be overridden by appending an = (equal sign) followed by the user-defined text for the header. The fields are written in the order specified on the command-line in column format. The field widths are specified by the system to be at least as wide as the default or user-defined header text. If the header text is null (such as if -o user= is specified), the field width is at least as wide as the default header text. If all header fields are null, no header line is written. The following field specifiers are recognized by the system:
|
Item | Description |
---|---|
-o Format (Continued) |
|
Item | Description |
---|---|
-o Format (Continued) |
|
Item | Description |
---|---|
-o Format (Continued) | Otherwise, multiple fields in a specified format can be displayed by the Format variable, including field descriptors. If field descriptors are used in the Format variable, it must be enclosed in double quotation marks (" "). The following table shows how field descriptors correspond to field specifiers:
Each field specifier has a default header. The default header can be overridden by appending an equal sign (=) followed by the user-defined text for the header. The fields are written in the order specified on the command-line in column format. The field widths are specified by the system to be at least as wide as the default or user-defined header text. If the header text is null (for example, -o user= is specified), the field width is at least as wide as the default header text. If all header fields are null, no header line is written. |
-o Format (Continued) | Following is the mapping between the default headers and
various field specifiers. Every entry in the Default Header column
can be overridden by appending an equal sign (=) to the corresponding
entry in the Field specifier followed by the user-defined text for
the header.
|
-p Plist | Displays only information about processes with the process numbers specified for the Plist variable. The Plist variable is either a comma-separated list of process ID numbers or a list of process ID numbers enclosed in double quotation marks (" ") and separated from one another by a comma or by one or more spaces, or both. |
-P | Displays the Project name, Project origin, and subproject identifier for the project. If the stick bit is set for the process, the project name is preceded by an asterisk (*) character. The Project origin field designates the currently loaded project repository (LOCAL or LDAP). |
-t Tlist | Displays only information about processes associated with the controlling ttys listed in the Tlist variable. The Tlist variable is either a comma-separated list of tty identifiers or a list of tty identifiers enclosed in double quotation marks (" ") and separated from one another by a comma or by one or more spaces, or both. |
-T pid | Displays the process hierarchy rooted at a given pid in a tree format using ASCII art. This flag can be used in combination with the -f, -F, -o, and -l flags. |
-U Ulist | Displays only information about processes with the user ID numbers or login names specified for the Ulist variable. The Ulist variable is either a comma-separated list of user IDs or a list of user IDs enclosed in double quotation marks (" ") and separated from one another by a comma and one or more spaces. The -U flag only applies to the current operating environment unless the -@ flag is also specified. If the -@ flag is used to specify a workload partition other than the current operating environment and the -U flag is specified, the list of user IDs must be numeric. In the listing, the ps command displays the numerical user ID unless the -f flag is used; then the command displays the login name. This flag is equivalent to the -u Ulist flag. See also the u flag. |
-u Ulist | This flag is equivalent to the -U Ulist flag. The -u flag only applies to the current operating environment unless the -@ flag is also specified. If the -@ flag is used to specify a workload partition other than the current operating environment and the -u flag is specified, the list of user IDs must be numeric. |
-X | Prints all available characters of each user/group name instead of truncating to the first eight characters. |
-Z | Displays the page size settings of processes.
|
-@ [ WparName ] | Displays the process information that is associated with the workload partition WparName. If you do not specify the WparName parameter, the process information for all workload partitions is displayed. Workload partition information is displayed for all processes. You must specify other flags to the ps command to determine which process information to be displayed. |
The following options are not preceded by a minus sign (-):
Item | Description |
---|---|
a | Displays information about all processes with terminals (ordinarily only the own processes of the user are displayed). |
c | Displays the command name, as stored internally in the system for purposes of accounting, rather than the command parameters, which are kept in the process address space. |
e | Displays the environment as well as the parameters to the command, up to a limit of 80 characters. |
ew | Wraps display from the e flag one extra line. |
eww | Wraps display from the e flag as many times as necessary. |
ewww | Wraps display from the e flag and displays the ENV list until it reaches the INT_MAX value. |
g | Displays all processes. |
l | Displays a long listing having the F, S, UID, PID, PPID, C, PRI, NI, ADDR, SZ, PSS, WCHAN, TTY, TIME, and CMD fields. |
n | Displays numerical 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. |
s | Displays the size (SSIZ) of the kernel stack of each process (for use by system maintainers) in the basic output format. This value is always 0 (zero) for a multi-threaded process. |
t tty | Displays processes whose controlling tty is the value of the tty variable, which should be specified as printed by the ps command; that is, 0 for terminal /dev/tty/0, lft0 for /dev/lft0, and pts/2 for /dev/pts/2. |
u | Displays user-oriented output. This includes the USER, PID, %CPU, %MEM, SZ, RSS, TTY, STAT, STIME, TIME, and COMMAND fields. |
v | Displays the PGIN, SIZE, RSS, LIM, TSIZ, TRS, %CPU, %MEM fields. |
w | Specifies a wide-column format for output (132 columns rather than 80). If repeated, (for example, ww), uses arbitrarily wide output. This information is used to decide how much of long commands to print. |
x | Displays processes without a controlling terminal in addition to processes with a controlling terminal. |
X | Prints the full user name or group name. The name is not truncated. |
This command returns the following exit values:
Item | Description |
---|---|
0 | Successful completion. |
>0 | An error occurred. |
Attention RBAC users and Trusted AIX users: This command can perform privileged operations. Only privileged users can run privileged operations. For more information about authorizations and privileges, see Privileged Command Database in Security. For a list of privileges and the authorizations associated with this command, see the lssecattr command or the getcmdattr subcommand.
ps -e -f
ps -X -e -f
ps -f -l -ujim,jane,su
ps -t console,tty/1
ps -t -
ps -o ruser,pid,ppid=parent,args
The
output is: RUSER PID parent COMMAND
helene 34 12 ps -o ruser,pid,ppid=parent,args
ps -o "< %u > %p %y : %a"
The
output is: < RUSER > PID TT : COMMAND
< helene > 34 pts/3 : ps -o < %u > %p %y : %a
ps -lm
The output is like: F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
240003 A 26 8984 7190 1 60 20 2974 312 pts/1 0:00 -ksh
400 S - - - 1 60 - - - - - -
200005 A 26 9256 8984 15 67 20 18ed 164 pts/1 0:00 ps
0 R - - - 15 67 - - - - - -
ps -emo THREAD
The
output is like: USER PID PPID TID S C PRI SC WCHAN FLAG TTY BND CMD
jane 1716 19292 - A 10 60 1 * 260801 pts/7 - biod
- - - 4863 S 0 60 0 599e9d8 8400 - - -
- - - 5537 R 10 60 1 5999e18 2420 - 3 -
luke 19292 18524 - A 0 60 0 586ad84 200001 pts/7 - -ksh
- - - 7617 S 0 60 0 586ad84 400 - - -
luke 25864 31168 - A 11 65 0 - 200001 pts/7 - -
- - - 8993 R 11 65 0 - 0 - - -
ps -M
ps -P
ps -Z
The
output is like: PID TTY TIME DPGSZ SPGSZ TPGSZ SHMPGSZ CMD
41856 pts/15 0:00 4K 4K 4K 64K ps
84516 pts/15 0:00 4K 4K 4K 64K ksh
Using the ps command in AIX Version 7.1 Performance management.
/usr/sysv/bin/ps [ -a ] [ -A ] [ -c ] [ -d ] [ -e ] [ -f ] [ -j ] [ -l ] [ -L ] [ -P ] [ -y ] [ -g pgrplist ] [ -o format ] [ -p proclist ] [ -s sidlist ] [ -t termlist ] [ { -u | -U } uidlist ] [ -G grplist ] [ -X ]
The ps command prints information about active processes. Without flags, ps prints information about processes associated with the controlling terminal. The output contains the process ID, terminal identifier, cumulative runtime, and the command name. The information displayed with flags varies accordingly.
Output
Depending on the flags used with the ps command, column headings vary for the information displayed. The headings are defined in the following list (flags that cause these headings to appear are shown in parentheses):
Flags | Hexadecimal Value | Definition |
---|---|---|
SLOAD | 0x00000001 | Indicates that the process is operating in core memory. |
SNOSWAP | 0x00000002 | Indicates that the process cannot be swapped out. |
STRC | 0x00000008 | Indicates that the process is being traced. |
SKPROC | 0x00000200 | Indicates a Kernel process. |
SEXIT | 0x00010000 | Indicates that the process is exiting. |
SEXECED | 0x00200000 | Indicates that process has been run. |
SEXECING | 0x01000000 | Indicates that the process is execing (performing an exec). |
TKTHREAD | 0x00001000 | Indicates that the thread is a kernel only thread. |
Format
The following list describes the field specifiers recognized by the system. These field specifiers can be used with the -o flag to specify the format for the output of the ps command.
[[ dd -] hh: ]mm :ss
where dd specifies
the number of days, hh specifies the number of hours, mm specifies
the number of minutes, and ss specifies the number of seconds. The default header for this field is ELAPSED.
The default header for this field is WCHAN.
Some flags 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 pgrplist must be numeric.
Item | Description |
---|---|
-a | Writes to standard output information about all processes, except the session leaders and processes not associated with a terminal. |
-A | Writes to standard output information about all processes. |
-c | Prints information in a format that reflects scheduler properties. The -c flag affects the output of the -f and -l flags, as described below. |
-d | Writes to standard output information about all processes, except the session leaders. |
-e | Writes to standard output information about all processes, except kernel processes. |
-f | Generates a full listing. |
-g pgrplist | Writes to standard output information only about processes that are in the process groups specified by pgrplist. Values for pgrplist must be numeric. |
-G grplist | Writes to standard output information only about processes that are in the process groups specified by grplist. The -G flag accepts group names. |
-j | Displays session ID and process group ID. |
-l | Generates a long listing. |
-L | Prints status of active threads within a process. |
-o format | Displays information in the format specified by format. Multiple field specifiers can be specified for the format variable. The field specifiers that can be used with the -o flag are described above in the Format section. |
-p proclist | Displays information only about processes with the process numbers specified by proclist. Values for proclist must be numeric. |
-P | Displays the logical processor number of the processor to which the primary kernel thread of the process is bound (if any). |
-s sidlist | Displays all processes whose session leader's IDs are specified by sidlist. |
-t termlist | Displays information only about processes associated with the terminals specified by termlist. |
-u uidlist | Displays information only about processes with the user ID numbers or login names specified by uidlist. |
-U uidlist | Displays information only about processes with the user ID numbers or login names specified by uidlist. |
-X | Prints all available characters of each user and group name instead of truncating to the first 8 characters. |
-y | When combined with the -l option, changes the long listing so that it prints the "RSS'' and "SZ'' fields in kilobytes and does not print the "F'' and "ADDR'' fields. |
This command returns the following exit values:
Item | Description |
---|---|
0 | Successful completion. |
>0 | An error occurred. |
Attention RBAC users and Trusted AIX users: This command can perform privileged operations. Only privileged users can run privileged operations. For more information about authorizations and privileges, see Privileged Command Database in Security. For a list of privileges and the authorizations associated with this command, see the lssecattr command or the getcmdattr subcommand.
ps -e -f
ps -f -l -u guest
ps -t pts/0,pts/1
ps -t -
ps -o ruser,pid,ppid,args
ps -L
ps -jA
ps -c -l
ps -L -f
ps -P
ps -T 14220
Output
will look like the following: PID TTY TIME CMD
14220 - 0:00 inetd
16948 - 0:00 |\--telnetd
32542 pts/4 0:00 | \--ksh
26504 - 0:00 |\--telnetd
41272 pts/5 0:00 | \--ksh
26908 pts/5 0:00 | \--vi
28602 - 0:00 |\--telnetd
24830 pts/0 0:00 | \--ksh
676416 pts/0 0:00 | \--ksh
29984 - 0:00 |\--telnetd
38546 pts/6 0:00 | \--ksh
32126 - 0:00 |\--telnetd
11162 pts/7 0:00 | \--ksh
34466 - 0:00 |\--rpc.ttdbserver
35750 - 0:00 |\--telnetd
23612 pts/3 0:00 | \--ksh
36294 - 0:00 |\--telnetd
38096 pts/8 0:00 | \--ksh
39740 - 0:00 |\--telnetd
42226 pts/9 0:01 | \--ksh
40632 - 0:00 |\--telnetd
40232 pts/2 0:00 | \--ksh
32910 pts/2 0:00 | \--dbx
987990 pts/2 0:00 | \--a.out
40722 - 0:00 |\--telnetd
16792 pts/10 0:00 | \--ksh
37886 pts/10 0:00 | \--ps
105716 - 0:00 \--telnetd
29508 pts/1 0:00 \--ksh
39478 pts/1 0:00 \--ksh
38392 pts/1 0:00 \--vi
ps -fL 14220
Output will look like the
following: UID PID PPID C STIME TTY TIME CMD
root 14220 8676 0 Apr 07 - 0:00 /usr/sbin/inetd
root 16948 14220 0 Apr 06 - 0:00 telnetd -a
root 23612 35750 0 Apr 10 pts/3 0:00 -ksh
root 24830 28602 1 18:30:56 pts/0 0:00 -ksh
root 28602 14220 0 18:30:55 - 0:00 telnetd -a
root 32542 16948 0 Apr 06 pts/4 0:00 -ksh
root 34466 14220 0 Apr 10 - 0:00 rpc.ttdbserver 100083 1
root 35750 14220 0 Apr 10 - 0:00 telnetd -a
root 40228 24830 8 18:36:01 pts/0 0:00 ps -fL 14220
ps -X -e -f
#ps -m -o THREAD,sched
USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND SCH
suresana 1609830 4227284 - A 16 68 1 - 200001 pts/144 - ps -m
-o THREAD sched 0
- - - 6381739 R 16 68 1 -400000 - - - 0
suresana 4227284 4239476 - A 1 60 1 -200801 pts/144 - bash 0
- - - 4177981 S 1 60 1 -410400 - - - 0
suresana 4239476 921694 - A 0 60 1 -240001 pts/144 - -ksh 0
- - - 5554385 S 0 60 1 -10400 - - - 0
Item | Description |
---|---|
/usr/sysv/bin/ps | Contains the System V R4 ps command. |
/etc/passwd | Contains the user ID information. |
/dev/pty* | Indicates terminal (PTY) names. |
/dev/tty* | Indicates terminal (TTY) names. |