 |
Index for Section 1 |
|
 |
Alphabetical listing for P |
|
ps(1)
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:
-a Prints information to standard output about all processes, except the
session leaders and processes not associated with a terminal.
-A Writes information for all processes.
-d Prints information to standard output about all processes, except the
session leaders.
-e Prints information to standard output about all processes. Equivalent
to -A.
-f Generates a full listing.
-g glist
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.
-G glist
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.
-j [Compaq] Produces job control information, with fields specified for
user, pid, ppid, pgid, sess, jobc, state, tname, time and command.
-l Generates a long listing.
-m [Compaq] Prints all threads in a task, if the task has more than one.
-o specifier[=header],...
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.
-O specifier[=header],...
[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.
-n nlist
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.
-p plist
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.
-r [Compaq] Enables warning messages.
-s slist
[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.
-t tlist
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:
1.
The device's file name
2.
The device's digit identifier, if the device's file name begins with
tty
-u ulist
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.
-U ulist
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):
a [Compaq] Asks for information regarding processes associated with
terminals (ordinarily only one's own processes are displayed).
A [Compaq] Increases the argument space.
e [Compaq] Asks for the environment to be printed, as well as the
arguments to the command.
g [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.
h [Compaq] Repeats the header after each screenful of information.
j [Compaq] Produces job control information, with fields specified by
user, ppid, pgid, sess, and jobc.
l [Compaq] Asks for a detailed list, with fields specified by ppid, cp,
pri, nice, vsize, rssize and wchan.
L [Compaq] Lists all available format specifiers.
m [Compaq] Prints all threads in a task, if the task has more than one.
o specifier[=header],...
[Compaq] Specifies a list of format specifiers to describe the output
format.
O specifier[=header],...
[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.
s [Compaq] Gives signal states of the processes, with fields specified
by uid, cursig, sig, sigmask, sigignore, and sigcatch.
S [Compaq] Prints usage summaries (total usage of a command, as opposed
to current usage).
ttty
[Compaq] Lists only processes for the specified terminal.
T [Compaq] Lists all processes on your terminal.
u [Compaq] Produces a user oriented output. This includes fields
specified by user, pcpu, pmem, vsize, rssize, and start.
v [Compaq] Produces a version of the output containing virtual memory
statistics. This includes fields specified by cputime, sl, pagein,
vsize, rssize, pcpu, and pmem.
w [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.
x [Compaq] Asks even about processes with no terminal.
OPERANDS
Current Syntax
None
BSD Compatible Syntax
process_number
[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:
R [Compaq] Runnable process.
U [Compaq] Uninterruptible sleeping process.
S [Compaq] Process sleeping for less than about 20 seconds.
I [Compaq] Idle (sleeping longer than about 20 seconds) process.
T [Compaq] Stopped process.
H [Compaq] Halted process.
[Compaq] Additional characters after these, if any, indicate additional
state information:
W [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):
N [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:
________________________________________________________________
Specifier Header Meaning
________________________________________________________________
acflag ACFLG
[Compaq] Process accounting flag
args COMMAND Command arguments
c C CPU utilization factor for scheduling
cmd CMD
[Compaq] Command arguments
comm COMMAND Command name for accounting
command COMMAND
[Compaq] Command arguments (and
environment with BSD e option)
cp CP
[Compaq] Short-term CPU utilization
factor (used in scheduling)
cputime TIME
[Compaq] Current CPU time used
cursig CURSIG [Compaq] Current signal
etime ELAPSED Time command has been running
flag F [Compaq] Process flags
group GROUP Group name
inblock INBLK
[Compaq] Block input operations
jobc JOBC
[Compaq] Current count of processes
qualifying PGID for job control
logname LOGNAME
[Compaq] User's login name
longtname TTY
[Compaq] Long controlling terminal device
name
lstart STARTED
[Compaq] Start date and time of process
majflt MAJFLT [Compaq] Page faults
minflt MINFLT [Compaq] Page reclaims
msgrcv MSGRCV
[Compaq] Messages received
msgsnd MSGSND [Compaq] Messages sent
nice NI
Process scheduling increment (see the
setpriority() call).
nivcsw IVCSW
[Compaq] Involuntary context switches
nsignals NSIGS
[Compaq] Signals received
nswap NSWAP [Compaq] Swaps
nvcsw VCSW
[Compaq] Voluntary context switches
nwchan WCHAN
[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.
oublock OUBLK
[Compaq] Block output operations
pagein PAGEIN
[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%.
pgid PGID Process group ID
pid PID Process ID
pmem %MEM
[Compaq] Percent real memory usage
policy POL
[Compaq] Current scheduling policy
ppid PPID Parent process ID
pri PRI
[Compaq] Process priority
pset PSET
[Compaq] Current processor set (^ means
bound)
psr PSR
[Compaq] Current processor (~ means
bound)
psxpri PPR
[Compaq] POSIX scheduling priority
rgid RGID
[Compaq] Process group (real GID)
rgroup RGROUP Real group name
rssize RSS
[Compaq] Real memory (resident set) size
of the process (in 1024 byte units)
ruid RUID
[Compaq] Process user ID (real UID)
ruser RUSER User ID
scount SCNT [Compaq] Suspend count
sess SESS [Compaq] Session ID
sig PENDING
[Compaq] Signals pending to this process
sigcatch CAUGHT
[Compaq] Signals being caught
sigignore IGNORED
[Compaq] Signals being ignored
sigmask BLOCKED
[Compaq] Current signal mask
sl SL [Compaq] Sleep time
start STARTED
[Compaq] Start time of process. If start
time was more than 24 hours ago, gives the
date.
state S
[Compaq] Symbolic process status
status STATUS [Compaq] Process status
stime STARTED
Start time of process. If start time was
more than 24 hours ago, gives the date.
svgid SVGID
[Compaq] Saved process group ID
svuid SVUID
[Compaq] Saved process user ID
systime SYSTEM
[Compaq] Time spent in system
tdev TDEV
[Compaq] Major/minor device for
controlling terminal
time TIME Current CPU time used
tname TTY
[Compaq] Controlling terminal device name
tpgid TPGID
[Compaq] Foreground process group
associated with terminal
tsession TSESS
[Compaq] Session associated with terminal
tt TTY Controlling terminal device name
tty TTY Controlling terminal device name
ucomm COMMAND
[Compaq] Command name for accounting
uid UID
[Compaq] Process user ID (effective UID)
umask UMASK [Compaq] Process umask
user USER Username
usertime USER
[Compaq] Time spent in user space
usrpri UPR
[Compaq] Base scheduling priority
u_procp UPROCP
[Compaq] Address of process in user area
vsize VSZ
[Compaq] Process virtual address size
vsz VSZ Process virtual address size
wchan WCHAN
[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:
_____________________________________________________________________________
Specifier Meaning
_____________________________________________________________________________
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:
_______________________________________________________________________
Flag Value Meaning
Symbolic
Constant
_______________________________________________________________________
SLOAD 0x00000001 In core
SSYS 0x00000002
[Compaq] Swapper or pager process
SLOMAP 0x00000004 Process allowed to use low virtual memory
SNOTASK 0x00000040 Process completed exit
SWWAIT 0x00000080 Thread is removing zombie
SOMASK 0x00000200 Restore old mask after taking signal
SWEXIT 0x00000400 Working on exiting
SPHYSIO 0x00000800 Doing physical I/O
SVFORK 0x00001000
Process resulted from vfork()
SPAGV 0x00008000 Init data space on demand, from vnode
SSEQL 0x00010000 User warned of sequential vm behavior
SUANOM 0x00020000 User warned of random vm behavior
SCONTIGN 0x00040000 Process is ignoring SIGCONT
S1170 0X00080000
Process is using Single UNIX(R)
Specification signal behaviors
SLOGIN 0x00400000
Process marked as a login for Capacity
Limitation
SCTTY 0x00800000 Process has a controlling terminal
SXONLY 0x02000000 Process image read-protected
SAIO 0x08000000 Process performed asynchronous I/O
SNOCLDWAIT 0x20000000 No zombies when children exist
SNOCLDSTOP 0x40000000
No SIGCHLD when children stop
SEXEC 0x80000000 Process called exec
_______________________________________________________________________
<defunct>
A process that has exited but whose parent process has not waited for
it.
<error>
[Compaq] A process for which user area information could not be
obtained due to a shortage of system memory.
<exiting>
A process that is blocked trying to exit.
NOTES
1. [Compaq] The following BSD compatible options are not supported.
(You can reconstruct the output of these options by using the
appropriate format specifiers, however.)
c [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.
n [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.
2. 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.
3. 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
1. [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.
2. [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.
3. [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:
0 Successful completion.
>0 An error occurred.
EXAMPLES
1. To list all your processes, enter:
ps
2. To list all processes, enter:
ps -A
The BSD equivalent looks like this:
ps ax
3. To list processes owned by specific users, enter:
ps -f -l -ujim,jane,su
4. To list processes associated with a specific terminal, enter:
ps -t console
The BSD equivalent looks like this:
ps tco
5. To display only the pid, user, and comm information for all processes,
enter:
ps -o pid,user,comm -A
6. 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
7. 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 (^).
8. 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:
COLUMNS
Overrides the horizontal screen size, used to determine the number of
text columns to display.
LANG
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.
LC_ALL
If set to a non-empty string value, overrides the values of all the
other internationalization variables.
LC_CTYPE
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).
LC_MESSAGES
Determines the locale for the format and contents of diagnostic
messages written to standard error.
LC_TIME
Determines the format and contents of the date and time strings
displayed.
NLSPATH
Determines the location of message catalogues for the processing of
LC_MESSAGES.
FILES
/dev
Searched to find terminal names.
/usr/include/sys/proc.h
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)