glenda.party
term% ls -F
term% pwd
$home/manuals/unix_v8/8/oops
term% cat index.txt
OOPS(8)                     System Manager's Manual                    OOPS(8)

NAME
       oops - process status

SYNOPSIS
       oops [ acegklstuvwx# ] [ core ] [ swap ] [ namelist ]

DESCRIPTION
       Oops  prints information about processes.  Normally, only the invoker's
       processes are candidates to be printed by oops.   Specifying  a  causes
       other user's processes to be candidates to be printed; specifying x in‐
       cludes processes without control terminals in the candidate pool.

       All  output formats include, for each process, the process id PID, con‐
       trol 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, e.g. ‘‘RWNA''.  The first let‐
       ter indicates the runnability of the process: R for a runnable process,
       T for a stopped process, P for a process in page wait,  D  for  one  in
       disk (or other short term) wait, S for one sleeping for less than about
       20  seconds,  and I for an idle (sleeping longer than about 20 seconds)
       process.  The second letter is W if the process is swapped  out,  blank
       if  it  is  resident  in  memory.   The  third letter is a blank if the
       process is running with normal scheduling priority, N if  the  priority
       is reduced (nice), < if the priority is raised.  The final letter is an
       A if special paging behaviour has been requested.

       Here are the options:

       a    asks  for information about all processes with terminals (ordinar‐
            ily only one's own processes are displayed).

       c    causes the system's internal idea of the command name to be  used,
            rather  than  the command arguments 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 (environ(7)) to be printed.

       g    includes process group leaders (usually shells) which are normally
            excluded.

       k    causes  the  file  /vmcore  is  used  in  place  of  /dev/kmem and
            /dev/mem.  This is used for postmortem system debugging.

       l    asks for a long listing, with fields  PPID,  CP,  PRI,  NI,  ADDR,
            SIZE, RSS and WCHAN as described below.

       s    adds the size SSIZ of the kernel stack of each process (for use by
            system maintainers) to the basic output format.

       tx   restricts  output  to  processes whose controlling tty is x (which
            should be specified as printed by oops, e.g.  t3 for tty3, tco for
            console, td0 for ttyd0, t?  for processes with no tty, etc).  This
            option must be the last one given.

       u    allegedly user oriented output is produced.  This includes  fields
            USER, %CPU, NICE, SIZE, and RSS as described below.

       v    virtual  memory  statistics; includes fields RE, SL, PAGEIN, SIZE,
            RSS, SRS, TSIZ, TRS, %CPU and %MEM, described below.

       w    use a wide output format (132 columns  rather  than  80);  if  re‐
            peated,  use arbitrarily wide output.  This information is used to
            decide how much of long argument lists to print.

       x    asks about even processes with no terminal.

       #    A process number may be given, in which case  the  output  is  re‐
            stricted to that process.  This option must also be last.

       A  second argument tells oops where to look for core if the k option is
       given, instead of /vmcore.  A third argument is the name of a swap file
       to use instead of the default  /dev/drum.   If  a  fourth  argument  is
       given,  it  is  taken  to be the file containing the system's namelist.
       Otherwise, /unix is used.

       Fields which are not common to all output formats:
       USER      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 nice(2))
       SIZE      virtual size of the process (in 1024 byte units)
       RSS       real memory (resident set) size of the process (in 1024  byte
                 units)
       SRS       number of real memory pages (RSS) if and when swapped
       TSIZ      size of text (shared program) image
       TRS       size of resident (real memory) set of text
       %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/o's 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 process is waiting (an address in the system),
                 with the initial  part  of  the  address  trimmed  off;  e.g.
                 0x80004000 prints as 4000.

       F         flags associated with process as in /usr/include/sys/proc.h:
             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 unlock of pages
             SWEXIT      000400  working on exiting
             SPHYSIO     000800  doing physical i/o (bio.c)
             SPAGI       008000  init data space on demand, from inode
             SSEQL       010000  user warned of sequential vm behavior
             SUANOM      020000  user warned of anomalous vm behavior
             STIMO       040000  timing out during sleep
             SDETACH     080000  detached inherited by init
             SNUSIG      100000  using new signal mechanism

       A process that has exited and has a parent, but has not yet been waited
       for  by the parent is marked <defunct>; a process which is blocked try‐
       ing to exit is marked <exiting>.  Oops makes an educated  guess  as  to
       the file name and arguments given when the process was created by exam‐
       ining memory or the swap area.  The method is inherently somewhat unre‐
       liable  and in any event a process is entitled to destroy this informa‐
       tion, so the names cannot be counted on too much.

FILES
       /unix         system namelist
       /dev/kmem     kernel memory
       /dev/drum     swap device
       /vmcore       core file
       /dev          searched to find swap device and tty names

SEE ALSO
       kill(1), ps(1), pstat(8)

BUGS
       Things can change while oops is running; the picture it gives is only a
       close approximation to reality.
       Oops duplicates ps(1); it is useful mainly for examining  kernel  crash
       dumps, or when /proc is not mounted.

                                                                       OOPS(8)