Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
()                                                                          ()

,

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
       environment 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, including 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.
       Selection 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
       (sorting 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
       separator 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
       created 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
       arguments, 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
       personality, 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
       Specification.

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
       approximate binary search directly on System.map, and many code and
       documentation 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>

                                                                            ()

NAME | SYNOPSIS | DESCRIPTION | COMMAND-LINE OPTIONS | NOTES | EXAMPLES | SEE ALSO | STANDARDS | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ps&sektion=1&manpath=Red+Hat+Linux%2fi386+9>

home | help