PS(1,C) AIX Commands Reference PS(1,C) ------------------------------------------------------------------------------- ps PURPOSE Reports process status. SYNTAX +-- -t console ---+ +--------+ +- -c/dev/kmem -+ +----- -n/unix -----+ ps ---| one of |-| +----+ |-| |-| |-> | +-------------+ | +-| -f |-+ +- -c corefile --+ +- -n kernel-image -+ +-| -a -g glist |-+ ^| -k || | -e -p plist | || -l || | -d -t tlist | || -- || | -u ulist | |+----+| +-------------+ +------+ +---------------+ +- /unix --------------------------+ ps ---| +-----------+ |---| +-- /dev/knum --+ |---| +-| a l t x 1|-+ +- kernel-image -| |-+ ^| c n o U || +- -k corefile -+ || e r v pid || || g s w || |+-----------+| +-------------+ ----------------- 1 No spaces between these options. DESCRIPTION The ps command writes certain information about active processes to standard output. Without flags, ps displays information about the processes with your effective user ID. The column headings in a ps listing have the following meaning. The letters f and l following the column heads indicate which flags cause the corresponding heading to appear. If all follows the column head, that heading always appears. The -f and -l flags determine only what information is provided about a process; they do not determine which processes are listed. F (l) Flags (octal and additive) associated with the process: 00 None apply 01 In core Processed March 31, 1992 PS(1,C) 1 PS(1,C) AIX Commands Reference PS(1,C) 02 System process 04 Locked in core (for example, for physical I/O); 10 Waiting for a page default, or forking 20 Being traced by another process 40 Another tracing flag 100 Process has shared text. S (l) The state of the process: 0 Nonexistent S Sleeping W Waiting R Running I Intermediate Z Canceled T Stopped K Available kernel process X Growing. UID (f,l) The user ID of the process owner; the login name is displayed with the -f flag. PID (all) The process ID of the process. PPID (f,l) The process ID of the parent process. C (f,l) Processor utilization for scheduling. The higher the number, the higher the utilization. STIME (f) Starting time of the process. The appearance of this field is locale-specific. PRI (l) The priority of the process; higher numbers mean lower priority. NI (l) Nice value; used in calculating priority. The default is 20. The higher the number, the lower the priority. ADDR (l) The location of the process's kernel stack. If in memory, it is the address of the u area of the process. On 386 machines, a pair of addresses are the page of the kernel stack followed by the page with the user structure. If swapped out, information of the form bbbb (p) is output, where bbbb is the block number on swap partition number p. Processed March 31, 1992 PS(1,C) 2 PS(1,C) AIX Commands Reference PS(1,C) SZ (l) The size in 1K or 4K blocks (see individual options) of the core image of the process. This includes the stack, data, and text segments. WCHAN (l) The event for which the process is waiting or sleeping; if blank, the process is running. Numbers refer to addresses in the kernel's address space. TTY (all) The controlling work station for the process. TIME (all) The total execution time for the process. The value is specified in minutes and seconds. CMD (all) The command name; the full command name and its parameters are displayed with the -f flag. The command name may not be displayed if it is issued from a terminal with a different code page set. A process that has exited and has a parent, but has not yet been waited for by the parent, is marked . With the -f flag, ps determines what the command name and parameters were when the process was created by examining memory or the paging area. If it cannot find this information, the command name, as it would appear without the -f flag, displays in square brackets. Notes: 1. Things can change while ps is running. 2. Some data displayed for defunct processes are irrelevant. 3. To obtain System V-like behavior, precede each option with a hyphen (-). To obtain BSD-like behavior, do not precede options with the hyphen. (Unknown options are ignored by the BSD-compatible parser.) 4. Remote child process selection only applies to processes that are associated with a terminal. Child processes on remote sites are only selected as long as they continue to be associated with the same terminal. 5. This is a system tool that deals with the internal kernel data structures such as the process table, the file table, the user structure, etc..., so it should run with the same vintage kernel or be at the same ptf level if the kernel-image and corefile are used. Otherwise the incorrect or mismatched information will be given. FLAGS Processed March 31, 1992 PS(1,C) 3 PS(1,C) AIX Commands Reference PS(1,C) The - - flag shows processes at your local work station. In case you do not specify a "-" before your options: Specifying a causes other users' processes to be candidates to be printed; specifying x includes processes without control terminals in the candidate pool. All output formats include, for each process, the process ID (PID), control terminal of the process (TT), CPU time used by the process (TIME), (this includes both user and system time), the state (STAT) of the process, and an indication of the COMMAND which is running. The state is given by a sequence of four letters; the first letter indicates the reliability of the process: R for runnable processes, T for stopped processes, P for processes in page wait, D for those in disk (or other short term) waits, S for those sleeping for less than about 20 seconds, and I for idle processes (sleeping longer than about 20 seconds. The second letter indicates whether a process is swapped out, showing W if it is or a blank if it is loaded (in-core). A process which has specified a soft limit on memory requirements and which is exceeding that limit shows >; such a process is (necessarily) not swapped. The third letter indicates whether a process is running with altered CPU scheduling priority (nice). If the process priority is reduced, an N is shown. If the process priority has been artificially raised, a < is shown. Processes running without special treatment just have a blank. The fourth letter is reserved for future use. A second argument is taken to be the file containing the system's namelist. Otherwise, /unix is used. A third argument tells ps where to look for core if the k option is given, instead of /core. If a fourth argument is given, it is taken to be the name of a paging file to use instead of the default /dev/swap. Fields which are not common to all output formats: USER Name of the owner of the process. %CPU CPU utilization of the process. This is a decaying average over 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. NICE (or NI) process scheduling increment (see setpriority system call in the AIX Operating System Technical Reference). SIZE Virtual size of the process in kilobytes. RSS Real memory (resident set) size of the process in kilobytes. LIM Soft limit on memory used, specified via a call to setrlimit. If no limit has been specified, this is shown as xx. (See setrlimit system call in the AIX Operating System Technical Reference.) TSIZ Size of text (shared program) image. This parameter gives size in kilobytes. TRS Size of resident (real memory) set of text. Processed March 31, 1992 PS(1,C) 4 PS(1,C) AIX Commands Reference PS(1,C) %MEM Percentage of real memory used by this process. RE Residency time of the process (seconds in core). SL Sleep time of the process (seconds blocked). PAGEIN Number of disk I/Os resulting from references by the process to pages not loaded in core. UID Numerical user-ID of process owner. PPID Numerical ID of parent of process. CP Short-term CPU utilization factor (used in scheduling). PRI Process priority (non-positive when in non-interruptible wait). ADDR Swap address of the process. WCHAN Event on which the process is waiting (an address in the system). A symbol is chosen that classifies the address, unless numerical output is requested (see n flag). In this case, the initial part of the address is trimmed off and is printed hexadecimally. That is, 0x80004000 prints as 4000. F Flags associated with the process as defined in /usr/include/sys/proc.h for the p flag values: SLOAD 000001 in core SSYS 000002 swapper or pager process SLOCK 000004 process being swapped out SSWAP 000008 save area flag STRC 000010 process is being traced SWTED 000020 another tracing flag SULOCK 000040 user settable lock in core SPAGE 000080 process in page wait state SKEEP 000100 another flag to prevent swap out SDLYU 000200 delayed inlock of pages SWEXIT 000400 working on exiting SPHYSIO 000800 doing physical I/O (bio.c) SVFORK 001000 process resulted from vfork () SVFDONE 002000 another vfork flag SNOVM 004000 no vm, parent in vfork() SPAGI 008000 init data space on demand from inode SANOM 010000 system detected anomalous vm behavior SUANOM 020000 user warned of anomalous vm behavior STIMO 040000 timing out during sleep SDETACH 080000 detached inherited by init SOUSIG 100000 using old signal mechanism Processed March 31, 1992 PS(1,C) 5 PS(1,C) AIX Commands Reference PS(1,C) A process that has exited and has a parent that has not yet waited for the process is marked ; a process which is blocked trying to exit is marked ; ps makes an educated guess as to the file name and arguments given when the process was created by examining memory or the swap area. The method is inherently somewhat unreliable and in any event a process is entitled to destroy this information, so the names cannot be counted on too much. -a Writes to standard output information about all processes except the process group leaders and processes not associated with a terminal. -c corefile Uses corefile instead of the default /dev/mem. corefile is a core image file that has been created by the Ctrl-(left)Alt-Pad7 key sequence. -d Writes information to standard output about all processes except the process group leaders. -e Writes information to standard output about all processes except kernel processes. -f Generates a full listing. The meaning of columns in a full listing is described on page 1. -g glist Writes information to standard output only about processes that are in the process groups listed in glist. The glist 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 and/or one or more spaces. -k Writes information to standard output about kernel processes. Otherwise, it does not list kernel processes. -l Generates a long listing. The meaning of a long listing is described on page 1. Size parameter SZ gives stack+data in 4K blocks. -n kernel-image Takes kernel-image as the name of an alternate kernel-image file (/unix is the default). -p plist Displays only information about processes with the process numbers specified in plist. plist 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 and/or one or more spaces. -r Displays information about children of selected processes that are executing on other cluster sites. -t tlist Displays only information about processes associated with the work stations listed in tlist. tlist is either a list of comma-separated Processed March 31, 1992 PS(1,C) 6 PS(1,C) AIX Commands Reference PS(1,C) work-station identifiers or a list of work-station identifiers enclosed in double quotation marks (" ") and separated from one another by a comma and/or one or more spaces. -u ulist Displays only information about processes with the user ID numbers or login names specified in ulist. ulist 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/or one or more spaces. In the listing, ps displays the numerical user ID unless the -f flag is used; then it displays the login name. In case you do not specify a "-" before your options. a Asks for information about all processes with terminals (ordinarily only one's own processes are displayed). c Prints the command name, as stored internally in the system for purposes of accounting, rather than the command arguments, which are kept in the process' address space. This is more reliable, if less informative, since the process is free to destroy the latter information. e Asks for the environment to be printed as well as the arguments to the command. g Asks for all processes associated with the current user session. 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 login on free terminals. k Causes the core image file that has been created by Ctrl-(left) Alt-End sequence to be used in place of /dev/kmem. This flag must be specified in order to read the core image. This is used for postmortem system debugging. l Asks for a long listing, with fields PPID, CP, PRI, NI, ADDR, RSS, and WCHAN as described earlier. The size parameter SZ gives stack and data in kilobytes. n Asks for numerical output. In a long listing, the WHCAN field is printed numerically rather than symbolically, or, in a user listing, the USER field is replaced by a UID filed. r Display information for remote children of the processes selected on the current site. s Adds the size SSIZ of the kernel stack of each process (for use by system maintainers) to the basic output format. The size parameter gives stack size in kilobytes. Processed March 31, 1992 PS(1,C) 7 PS(1,C) AIX Commands Reference PS(1,C) t Restricts output to processes whose controlling tty is x (which should be specified as printed by ps; that is t3 for tty3, tconsole for console, tc0 for ttyc0, t? for processes with no tty, t for processes at the current tty, etc.). This option must be the last one given. u A user-oriented output is produced. This includes fields USER, %CPU, SZ, and RSS. The size parameter SZ gives stack, data, and text in kilobytes. v A version of the output containing virtual memory statistics as output. This includes fields RE, SL, PAGEIN, SIZE, RSS, LIM, TSIZ, %CPU and %MEM. The size parameter gives stack plus data plus text in kilobytes. w Use a wide output format (132 columns rather than 80); if repeated, (that is, ww), use arbitrarily wide output. This information is used to decide how much of long commands to print. x Asks even about process with no terminal. U Causes ps to update a private data base where it keeps system information. Thus ps U should be included in the /etc/rc file. The size parameter gives stack plus data plus text in kilobytes. pid A process number may be given, (indicated here by #), in which case the output is restricted to that process. This option must also be last. EXAMPLES 1. To list the processes that you have started: ps This command displays a summary of information about the processes with your effective user id. 2. To display all process information available: ps -e -f -l -k This command displays all of the information ("-l -f") about all processes ("-e" and "-k"). 3. To list processes owned by specific users: ps -f -l -utom,jane This command displays all the information available ("-l -f") about the processes being run by the users "tom" and "jane". 4. To list processes associated with specific work stations: ps -t-,console Processed March 31, 1992 PS(1,C) 8 PS(1,C) AIX Commands Reference PS(1,C) This command displays information about processes not connected to any work station ("-t-"), and processes associated with the work station "/dev/console". 5. To list the process that you have started: ps u This command displays BSD-like user information ("u") about process with your UID (default). 6. To display all process information available: ps lxag This command displays a BSD-like long listing ("l") about all processes ("xag"). 7. To display a specific process' information: ps 1 This command displays BSD-like summary information for process 1 ("1"). 8. To list processes associated with a specific work station: ps vt01 This command displays BSD-like virtual information ("v") about processes associated with tty01 ("t01"). 9. To list processes associated with a specific work station, and display it in System V-like behaviour: ps -- FILES /machine_name/unix System kernel image. /dev/mem Memory. /etc/passwd Supplies UID information. /etc/ps_data Internal data structures. /dev Searched to find work station ("TTY") names. RELATED INFORMATION See the following commands: "kill" and "nice." See setpriority subroutines and setrlimit subroutines in the AIX Operating System Technical Reference. Processed March 31, 1992 PS(1,C) 9