ABCDEFGHIJKLMNOPQRSTUVWXYZ

ps

PS(1)                         Linux User's Manual                        PS(1)



,

NAME
       ps - report process status

SYNOPSIS
       ps [options]


DESCRIPTION
       ps  gives a snapshot of the current processes. If you want a repetitive
       update of this status, use top. This man page documents the /proc-based
       version of ps, or tries to.


COMMAND-LINE OPTIONS
       This version of ps accepts several kinds of options.
              Unix98 options may be grouped and must be preceeded by a dash.
              BSD options may be grouped and must not be used with a dash.
              GNU long options are preceeded by two dashes.
       Options of different types may be freely mixed.

       Set  the  I_WANT_A_BROKEN_PS  environment  variable to force BSD syntax
       even when options are preceeded by a dash. The PS_PERSONALITY  environ-
       ment  variable  (described  below) provides more detailed control of ps
       behavior.


   SIMPLE PROCESS SELECTION
       Switch       Description
       ()                                                                          ()



       -A           select all processes
       -N           negate selection
       -a           select all with a tty except session leaders
       -d           select all, but omit session leaders
       -e           select all processes
       T            select all processes on this terminal
       a            select all processes on a terminal,  includ-
                    ing those of other users
       g            really all, even group leaders (does nothing
                    w/o SunOS settings)
       r            restrict output to running processes
       x            select processes without controlling ttys
       --deselect   negate selection


   PROCESS SELECTION BY LIST
       Switch    Description
       ()                                                                          ()



       -C        select by command name
       -G        select by RGID (supports names)
       -U        select by RUID (supports names)
       -g        select by session leader OR by group name
       -p        select by PID
       -s        select processes belonging to the sessions given

       -t        select by tty
       -u        select by effective user ID (supports names)
       U         select processes for specified users
       p         select by process ID
       t         select by tty
       --Group   select by real group name or ID
       --User    select by real user name or ID
       --group   select by effective group name or ID
       --pid     select by process ID
       --sid     select by session ID
       --tty     select by terminal
       --user    select by effective user name or ID
       -123      implied --sid
       123       implied --pid


   OUTPUT FORMAT CONTROL
       Switch     Description
       ()                                                                          ()



       -O         is preloaded "-o"
       -c         different scheduler info for -l option
       -f         does full listing
       -j         jobs format
       -l         long format
       -o         user-defined format
       -y         do not show flags; show rss in place of addr
       O          is preloaded "o" (overloaded)
       X          old Linux i386 register format
       j          job control format
       l          display long format
       o          specify user-defined format
       s          display signal format
       u          display user-oriented format
       v          display virtual memory format
       --format   user-defined format


   OUTPUT MODIFIERS
       Switch         Description
       ()                                                                          ()



       -H             show process hierarchy (forest)
       -m             show all threads
       -n             set namelist file
       -w             wide output
       C              use raw CPU time for %CPU instead of decaying average
       N              specify namelist file
       O              sorting order (overloaded)
       S              include some dead child process data (as a  sum  with
                      the parent)
       c              true command name
       e              show environment after the command
       f              ASCII-art process hierarchy (forest)
       h              do not print header lines (repeat header lines in BSD
                      personality)
       m              all threads
       n              numeric output for WCHAN and USER
       w              wide output
       --cols         set screen width
       --columns      set screen width

       --cumulative   include some dead child process data (as a  sum  with
                      the parent)
       --forest       ASCII art process tree
       --html         HTML escaped output
       --headers      repeat header lines
       --no-headers   print no header line at all
       --lines        set screen height
       --nul          unjustified output with NULs
       --null         unjustified output with NULs
       --rows         set screen height
       --sort         specify sorting order
       --width        set screen width
       --zero         unjustified output with NULs


   INFORMATION
       Switch      Description
       ()                                                                          ()



       -V          print version
       L           list all format specifiers
       V           show version info
       --help      print help message
       --info      print debugging info
       --version   print version


   OBSOLETE
       Switch   Description
       ()                                                                          ()



       A        increase the argument space (DecUnix)
       M        use alternate core (try -n or N instead)
       W        get swap info from ... not /dev/drum (try -n or N instead)
       k        use /vmcore as c-dumpfile (try -n or N instead)


NOTES
       The  "-g" option can select by session leader OR by group name.  Selec-
       tion by session leader is specified by many standards, but selection by
       group is the logical behavior that several other operating systems use.
       This ps will select by session  leader  when  the  list  is  completely
       numeric  (as  sessions  are). Group ID numbers will work only when some
       group names are also specified.

       The "m" option should not be used. Use "-m" or "-o" with a list.   ("m"
       displays memory info, shows threads, or sorts by memory use)

       The  "h"  option  is  problematic.   Standard BSD ps uses the option to
       print a header on each page of output, but  older  Linux  ps  uses  the
       option  to  totally disable the header.  This version of ps follows the
       Linux usage of not printing the header unless the BSD  personality  has
       been selected, in which case it prints a header on each page of output.
       Regardless of the current personality, you can  use  the  long  options
       --headers  and  --no-headers  to  enable printing headers each page and
       disable headers entirely, respectively.

       Terminals (ttys, or screens of text output) can be specified in several
       forms:  /dev/ttyS1,  ttyS1, S1. Obsolete "ps t" (your own terminal) and
       "ps t?" (processes without a terminal) syntax is supported, but  modern
       options  ("T",  "-t"  with  list,  "x",  "t"  with list) should be used
       instead.

       The BSD "O" option can act like "-O" (user-defined output  format  with
       some  common  fields  predefined) or can be used to specify sort order.
       Heuristics are used to determine the behavior of this option. To ensure
       that  the desired behavior is obtained, specify the other option (sort-
       ing or formatting) in some other way.

       For sorting, BSD "O" option syntax is  O[+|-]k1[,[+|-]k2[,...]]   Order
       the  process  listing according to the multilevel sort specified by the
       sequence of short keys from SORT KEYS, k1, k2, ...  The  `+'  is  quite
       optional,  merely  re-iterating  the  default  direction  on a key. `-'
       reverses direction only on the key it precedes. The O  option  must  be
       the  last  option  in  a single command argument, but specifications in
       successive arguments are catenated.

       GNU sorting syntax is --sortX[+|-]key[,[+|-]key[,...]]  Choose a multi-
       letter  key from the SORT KEYS section. X may be any convenient separa-
       tor character. To be GNU-ish use `='. The `+' is really optional  since
       default  direction  is increasing numerical or lexicographic order. For
       example, ps jax --sort=uid,-ppid,+pid

       This ps works by reading the virtual files in /proc. This ps  does  not
       need to be suid kmem or have any privileges to run. Do not give this ps
       any special permissions.

       This ps needs access to a namelist file for proper WCHAN display.   The
       namelist  file  must match the current Linux kernel exactly for correct
       output.

       To produce the WCHAN field, ps needs to read the System.map  file  cre-
       ated when the kernel is compiled. The search path is:
              $PS_SYSTEM_MAP
              /boot/System.map-`uname -r`
              /boot/System.map
              /lib/modules/`uname -r`/System.map
              /usr/src/linux/System.map
              /System.map
       The  member  used_math of task_struct is not shown, since crt0.s checks
       to see if math is present. This causes the math flag to be set for  all
       processes,  and  so  it  is worthless. (Somebody fix libc or the kernel
       please.)

       Programs swapped out to disk will be shown without command  line  argu-
       ments, and unless the c option is given, in brackets.

       %CPU  shows the cputime/realtime percentage. It will not add up to 100%
       unless you are lucky. It is time used divided by the time  the  process
       has been running.

       The SIZE and RSS fields don't count the page tables and the task_struct
       of a proc; this is at least 12k of memory that is always resident. SIZE
       is the virtual size of the proc (code+data+stack).

       Processes  marked  <defunct>  are  dead processes (so-called "zombies")
       that remain because their parent has not destroyed them properly. These
       processes will be destroyed by init(8) if the parent process exits.


   PROCESS FLAGS
       FORKNOEXEC   1   forked but didn't exec
       SUPERPRIV    2   used super-user privileges
       DUMPCORE     4   dumped core


   PROCESS STATE CODES
       D   uninterruptible sleep (usually IO)

       R   runnable (on run queue)
       S   sleeping
       T   traced or stopped
       Z   a defunct ("zombie") process

       For BSD formats and when the "stat" keyword is used, additional letters
       may be displayed:

       W   has no resident pages
       <   high-priority process
       N   low-priority task
       L   has pages locked into memory (for real-time and custom IO)


   SORT KEYS
       Note that the values used in sorting are the internal  values  ps  uses
       and  not  the `cooked' values used in some of the output format fields.
       Pipe ps output into the sort(1) command if you want to sort the  cooked
       values.


       KEY   LONG         DESCRIPTION
       ()                                                                          ()



       c     cmd          simple name of executable
       C     cmdline      full command line
       f     flags        flags as in long format F field
       g     pgrp         process group ID
       G     tpgid        controlling tty process group ID
       j     cutime       cumulative user time
       J     cstime       cumulative system time
       k     utime        user time
       K     stime        system time
       m     min_flt      number of minor page faults
       M     maj_flt      number of major page faults
       n     cmin_flt     cumulative minor page faults
       N     cmaj_flt     cumulative major page faults
       o     session      session ID
       p     pid          process ID
       P     ppid         parent process ID
       r     rss          resident set size
       R     resident     resident pages
       s     size         memory size in kilobytes
       S     share        amount of shared pages
       t     tty          the minor device number of tty
       T     start_time   time process was started
       U     uid          user ID number
       u     user         user name
       v     vsize        total VM size in bytes
       y     priority     kernel scheduling priority


   AIX FORMAT DESCRIPTORS
       This  ps  supports AIX format descriptors, which work somewhat like the
       formatting codes of printf(1) and printf(3). For  example,  the  normal
       default output can be produced with this:   ps -eo "%p %y %x %c"


       CODE   NORMAL   HEADER
       ()                                                                          ()



       %C     pcpu     %CPU

       %G     group    GROUP
       %P     ppid     PPID
       %U     user     USER
       %a     args     COMMAND
       %c     comm     COMMAND
       %g     rgroup   RGROUP
       %n     nice     NI
       %p     pid      PID
       %r     pgid     PGID
       %t     etime    ELAPSED
       %u     ruser    RUSER
       %x     time     TIME
       %y     tty      TTY
       %z     vsz      VSZ


   STANDARD FORMAT SPECIFIERS
       These may be used to control both output format and sorting.
       For example:  ps -eo pid,user,args --sort user


       CODE          HEADER
       ()                                                                          ()



       %cpu          %CPU
       %mem          %MEM
       alarm         ALARM
       args          COMMAND
       blocked       BLOCKED
       bsdstart      START
       bsdtime       TIME
       c             C
       caught        CAUGHT
       cp            CP
       cpu           CPU
       cmd           CMD
       comm          COMMAND
       command       COMMAND
       cputime       TIME
       drs           DRS
       dsiz          DSIZ
       egid          EGID
       egroup        EGROUP
       eip           EIP
       esp           ESP
       etime         ELAPSED
       euid          EUID
       euser         EUSER
       f             F
       fgid          FGID
       fgroup        FGROUP
       flag          F
       flags         F
       fname         COMMAND
       fsgid         FSGID
       fsgroup       FSGROUP
       fsuid         FSUID
       fsuser        FSUSER
       fuid          FUID
       fuser         FUSER
       gid           GID
       group         GROUP
       ignored       IGNORED
       intpri        PRI

       lim           LIM
       longtname     TTY
       lstart        STARTED
       m_drs         DRS
       m_trs         TRS
       maj_flt       MAJFL
       majflt        MAJFLT
       min_flt       MINFL
       minflt        MINFLT
       ni            NI
       nice          NI
       nwchan        WCHAN
       opri          PRI
       pagein        PAGEIN
       pcpu          %CPU
       pending       PENDING
       pgid          PGID
       pgrp          PGRP
       pid           PID
       pmem          %MEM
       policy        POL
       ppid          PPID
       pri           PRI
       rgid          RGID
       rgroup        RGROUP
       rss           RSS
       rssize        RSS
       rsz           RSZ
       rtprio        RTPRIO
       ruid          RUID
       ruser         RUSER
       s             S
       sess          SESS
       session       SESS
       sgi_p         P
       sgi_rss       RSS
       sgid          SGID
       sgroup        SGROUP
       sid           SID
       sig           PENDING
       sig_block     BLOCKED
       sig_catch     CATCHED
       sig_ignore    IGNORED
       sig_pend      SIGNAL
       sigcatch      CAUGHT
       sigignore     IGNORED
       sigmask       BLOCKED
       stackp        STACKP
       start         STARTED
       start_stack   STACKP
       start_time    START
       stat          STAT
       state         S
       stime         STIME
       suid          SUID
       suser         SUSER
       svgid         SVGID
       svgroup       SVGROUP
       svuid         SVUID
       svuser        SVUSER
       sz            SZ
       time          TIME
       timeout       TMOUT
       tmout         TMOUT
       tname         TTY
       tpgid         TPGID

       trs           TRS
       trss          TRSS
       tsiz          TSIZ
       tt            TT
       tty           TT
       tty4          TTY
       tty8          TTY
       ucomm         COMMAND
       uid           UID
       uid_hack      UID
       uname         USER
       user          USER
       vsize         VSZ
       vsz           VSZ
       wchan         WCHAN


   ENVIRONMENT VARIABLES
       The following environment variables could affect ps:

       COLUMNS              Override default display width
       LINES                Override default display height
       PS_PERSONALITY       Set to one of posix,old,linux,bsd,sun,digital
       CMD_ENV              Set to one of posix,old,linux,bsd,sun,digital
       I_WANT_A_BROKEN_PS   Force obsolete command line interpretation
       LC_TIME              Date format
       PS_FORMAT            Default output format override
       PS_SYSMAP            Default namelist (System.map) location
       PS_SYSTEM_MAP        Default namelist (System.map) location
       POSIXLY_CORRECT      Don't find excuses to ignore bad "features"
       UNIX95               Don't find excuses to ignore bad "features"
       _XPG                 Cancel CMD_ENV=irix non-standard behavior

       In general, it is a bad idea to set these variables. The two exceptions
       are CMD_ENV (or PS_PERSONALITY), to set the desired  default  personal-
       ity,  and  POSIXLY_CORRECT  (or UNIX95), which should be set for Unix98
       standard compliance.


       PS_PERSONALITY   Description
       ()                                                                          ()



       none             "Do the right thing"
       aix              like AIX ps
       bsd              like FreeBSD ps
       compaq           like Digital Unix ps
       debian           like the old Debian ps
       digital          like Digital Unix ps
       gnu              like the old Debian ps
       hp               like HP-UX ps
       hpux             like HP-UX ps
       irix             like Irix ps
       linux            deviate from Unix98 for convenience only
       old              like the original Linux ps
       posix            standard
       sco              like SCO ps
       sgi              like Irix ps
       sun              like SunOS 4 ps
       sunos            like SunOS 4 ps
       sysv             standard
       unix             standard
       unix95           standard
       unix98           standard


EXAMPLES
       To see every process on the system using standard syntax:
              ps -e
       To see every process on the system using BSD syntax:
              ps ax
       To see every process except those running as root (real & effective ID)
              ps -U root -u root -N
       To see every process with a user-defined format:
              ps -eo pid,tt,user,fname,tmout,f,wchan
       Odd display with AIX field descriptors:
              ps -o "%u : %U : %p : %a"
       Print only the process IDs of syslogd:
              ps -C syslogd -o pid=


SEE ALSO
       top(1) pstree(1) proc(5)


STANDARDS
       This  ps can be set to conform to version 2 of the Single Unix Specifi-
       cation.


AUTHOR
       ps was originally written by Branko Lankester <lankeste@fwi.uva.nl>.
       Michael K. Johnson <johnsonm@redhat.com> re-wrote it  significantly  to
       use the proc filesystem, changing a few things in the process.
       Michael Shields <shields@msrl.com> added the pid-list feature.
       Charles  Blake  <cblake@bbn.com> added multi-level sorting, the dirent-
       style library, the device name-to-number mmaped database, the  approxi-
       mate binary search directly on System.map, and many code and documenta-
       tion cleanups.
       David Mosberger-Tang wrote the generic BFD support for psupdate.
       Albert Cahalan <acahalan@cs.uml.edu> rewrote ps for full Unix98 and BSD
       support, along with some ugly hacks for obsolete and foreign syntax.

       Michael K. Johnson <johnsonm@redhat.com> is the current maintainer.

       Please send bug reports to <procps-list@redhat.com>



                                                                            ()