ps (1)



       ps - report process status


       ps [options]


       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.


       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

       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

       Switch    Description
       ()                                                                          ()

       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

       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

       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
       --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

       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

       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)


       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
       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

       To produce the WCHAN field, ps needs to read the  file  cre-
       ated when the kernel is compiled. The search path is:
              /boot/`uname -r`
              /lib/modules/`uname -r`/
       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

       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.

       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)

       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

       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

       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"
       %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

       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

       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
       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

       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 ( location
       PS_SYSTEM_MAP        Default namelist ( 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
       unix98           standard


       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=


       top(1) pstree(1) proc(5)


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


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

       Michael K. Johnson <> is the current maintainer.

       Please send bug reports to <>