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)