Annotation of 43BSDReno/bin/ps/ps.1, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1980, 1990 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted provided
        !             5: .\" that: (1) source distributions retain this entire copyright notice and
        !             6: .\" comment, and (2) distributions including binaries display the following
        !             7: .\" acknowledgement:  ``This product includes software developed by the
        !             8: .\" University of California, Berkeley and its contributors'' in the
        !             9: .\" documentation or other materials provided with the distribution and in
        !            10: .\" all advertising materials mentioning features or use of this software.
        !            11: .\" Neither the name of the University nor the names of its contributors may
        !            12: .\" be used to endorse or promote products derived from this software without
        !            13: .\" specific prior written permission.
        !            14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            17: .\"
        !            18: .\"     @(#)ps.1       6.7 (Berkeley) 6/26/90
        !            19: .\"
        !            20: .Dd June 26, 1990
        !            21: .Dd June 26, 1990
        !            22: .Dt PS 1
        !            23: .Os BSD 4
        !            24: .Sh NAME
        !            25: .Nm ps
        !            26: .Nd display current process status
        !            27: .Sh SYNOPSIS
        !            28: .Nm ps
        !            29: .Op Fl acegklnstuvwxU\&\#\&
        !            30: .Sh DESCRIPTION
        !            31: .Nm Ps
        !            32: displays the current process status.
        !            33: Normally, only your processes are candidates to be printed by
        !            34: .Nm ps ;
        !            35: specifying
        !            36: .Fl a
        !            37: causes other users' processes to be candidates to be printed;
        !            38: specifying
        !            39: .Fl x
        !            40: includes processes without control terminals in the candidate pool.
        !            41: While
        !            42: .Nm ps
        !            43: is a fairly accurate snapshot of the system,
        !            44: .Nm Ps
        !            45: cannot begin and finish a snapshot of the system as fast as some processes
        !            46: themselves change state.  At times there may be minor discrepancies.
        !            47: .Pp
        !            48: All output formats include, for each process, the process id PID,
        !            49: control terminal of the process TT, cpu time used by the process TIME
        !            50: (this includes both user and system time), the state STAT of the process,
        !            51: and an indication of the COMMAND which is running.
        !            52: The state is given by a sequence of letters, e.g. ``RWNA''.
        !            53: The first letter indicates the runnability of the process:
        !            54: R for runnable processes,
        !            55: T for stopped processes,
        !            56: P for processes in page wait,
        !            57: D for those in disk (or other short term) waits,
        !            58: S for those sleeping for less than about 20 seconds,
        !            59: and I for idle (sleeping longer than about 20 seconds)
        !            60: processes.
        !            61: Additional characters after these, if any,
        !            62: indicate additional state information.
        !            63: The letter W indicates that a process is swapped out,
        !            64: showing W if it is, or a blank if it is loaded (in-core).
        !            65: A process which has specified a soft limit on memory requirements
        !            66: and which is exceeding that limit shows >; such a process is (necessarily)
        !            67: not swapped.
        !            68: An additional letter may indicate whether a process is running with altered
        !            69: CPU scheduling priority (nice); if the process priority is reduced,
        !            70: an N is shown, if the process priority has been artificially raised then
        !            71: a `<' is shown.
        !            72: The final optional letter
        !            73: indicates any special treatment of the process for virtual
        !            74: memory replacement; the letters correspond to options to the
        !            75: .Xr vadvise  2
        !            76: call; currently the possibilities are A standing for VA_ANOM and
        !            77: S for VA_SEQL.
        !            78: An A typically represents a
        !            79: .Xr lisp  1
        !            80: in garbage collection, and S is typical of large image processing programs
        !            81: which are using virtual memory to sequentially address voluminous data.
        !            82: .Pp
        !            83: Here are the options:
        !            84: .Tp Fl a
        !            85: asks for information regarding processes associated with terminals (ordinarily
        !            86: only one's own processes are displayed).
        !            87: .Tp Fl c
        !            88: prints the command name, as stored internally in the system for purposes
        !            89: of accounting, rather than the command arguments, which are kept
        !            90: in the process' address space.  This is more reliable, if less informative,
        !            91: since the process is free to destroy the latter information.
        !            92: .Tp Fl e
        !            93: Asks for the environment to be printed as well as the arguments to the command.
        !            94: .Tp Fl g
        !            95: Asks for all processes.
        !            96: Without this option,
        !            97: .Nm ps
        !            98: only prints ``interesting'' processes.
        !            99: Processes are deemed to be uninteresting if they are process group leaders.
        !           100: This normally eliminates top-level command interpreters and processes
        !           101: waiting for users to login on free terminals.
        !           102: .Tp Fl k
        !           103: causes the file
        !           104: .Pa /vmcore
        !           105: to be used instead of
        !           106: .Pa /dev/kmem
        !           107: and
        !           108: .Ar /dev/mem
        !           109: for non-interactive (after the fact)
        !           110: debugging.
        !           111: .Tp Fl l
        !           112: asks for a detailed list, with fields PPID, CP, PRI, NI, ADDR, SIZE, RSS and
        !           113: WCHAN as described below.
        !           114: .Tp Fl n
        !           115: Asks for numerical output.
        !           116: In a long listing, the WCHAN field is printed numerically rather than
        !           117: symbolically, or, in a user listing, the USER field is replaced by a
        !           118: UID field.
        !           119: .Tp Fl s
        !           120: Adds the size SSIZ of the kernel stack of each process (for use by system
        !           121: maintainers) to the basic output format.
        !           122: .Ct Fl t
        !           123: .Ar x
        !           124: .Cx
        !           125: Only output information on processes whose controlling tty is
        !           126: .Ar x
        !           127: (which should be specified as printed by
        !           128: .Nm ps ,
        !           129: e.g.
        !           130: .Ar t3
        !           131: for tty3,
        !           132: .Ar tco
        !           133: for console,
        !           134: .Ar td0
        !           135: for ttyd0,
        !           136: .Ar t ?
        !           137: for processes with no tty,
        !           138: .Ar t
        !           139: for processes at the current tty,
        !           140: etc).
        !           141: This option must be the last one given.
        !           142: .Tp Fl u
        !           143: A user oriented output is produced.
        !           144: This includes fields USER, %CPU, NICE, SIZE, and RSS as described below.
        !           145: .Tp Fl v
        !           146: A version of the output containing virtual memory statistics is output.
        !           147: This includes fields RE, SL, PAGEIN, SIZE, RSS, LIM, TSIZ, TRS, %CPU
        !           148: and %MEM, described below.
        !           149: .Tp Fl w
        !           150: Use a wide output format (132 columns rather than 80); if repeated,
        !           151: e.g. ww, use arbitrarily wide output.
        !           152: This information is used to decide how much of long commands to print.
        !           153: .Tp Fl x
        !           154: asks even about processes with no terminal.
        !           155: .Tp Fl U
        !           156: causes ps to update a private database where it keeps system
        !           157: information.  Thus ``ps U'' should be included in the
        !           158: .Pa /etc/rc
        !           159: file.
        !           160: .Tp Fl #
        !           161: A process number may be given,
        !           162: (indicated here by #),
        !           163: in which case the output
        !           164: is restricted to that process.
        !           165: This option must also be last.
        !           166: .Tp
        !           167: .Pp
        !           168: A second argument is taken
        !           169: to be the file containing the system's
        !           170: namelist.  Otherwise, /vmunix is used.
        !           171: A third argument tells
        !           172: .Nm ps
        !           173: where to look for
        !           174: .Pa core
        !           175: if the
        !           176: .Fl k
        !           177: option is given, instead of
        !           178: .Pa /vmcore .
        !           179: If a fourth argument is given, it
        !           180: is taken to be the name of a swap file to use instead of
        !           181: the default
        !           182: .Pa /dev/drum .
        !           183: .Pp
        !           184: Fields which are not common to all output formats:
        !           185: .Pp
        !           186: .Dw PAGEIN
        !           187: .Dp Li USER
        !           188: name of the owner of the process
        !           189: .Dp Li %CPU
        !           190: cpu utilization of the process; this is a decaying average over up to
        !           191: a minute of previous (real) time.  Since the time base over which this
        !           192: is computed varies (since processes may be very young) it is possible
        !           193: for the sum of all %CPU fields to exceed 100%.
        !           194: .Dp Li NICE
        !           195: (or NI) process scheduling increment (see
        !           196: .Xr setpriority  2  )
        !           197: .Dp Li SIZE
        !           198: virtual size of the process (in 1024 byte units)
        !           199: .Dp Li RSS
        !           200: real memory (resident set) size of the process (in 1024 byte units)
        !           201: .Dp Li LIM
        !           202: soft limit on memory used, specified via a call to
        !           203: .Xr setrlimit  2  ;
        !           204: if no limit has been specified then shown as
        !           205: .Ar xx
        !           206: .Dp Li TSIZ
        !           207: size of text (shared program) image
        !           208: .Dp Li TRS
        !           209: size of resident (real memory) set of text
        !           210: .Dp Li %MEM
        !           211: percentage of real memory used by this process.
        !           212: .Dp Li RE
        !           213: residency time of the process (seconds in core)
        !           214: .Dp Li SL
        !           215: sleep time of the process (seconds blocked)
        !           216: .Dp Li PAGEIN
        !           217: number of disk i/o's resulting from references by the process
        !           218: to pages not loaded in core.
        !           219: .Dp Li UID
        !           220: process owner's user-id (numerical)
        !           221: .Dp Li PPID
        !           222: parent process id (numerical)
        !           223: .Dp Li CP
        !           224: short-term cpu utilization factor (used in scheduling)
        !           225: .Dp Li PRI
        !           226: process priority (non-positive when in non-interruptible wait)
        !           227: .Dp Li ADDR
        !           228: swap address of the process
        !           229: .Dp Li WCHAN
        !           230: address of event on which a process is waiting (an address in the system).
        !           231: A symbol is chosen that classifies the address, unless numerical
        !           232: output is requested (see the
        !           233: .Fl n
        !           234: flag).
        !           235: In this case, the initial part of the address is
        !           236: trimmed off and is printed hexadecimally, e.g., 0x80004000 prints as 4000.
        !           237: .Pp
        !           238: .Dp Li F
        !           239: flags associated with process as in
        !           240: .Aq Pa sys/proc.h :
        !           241: .Pp
        !           242: .Cw SDETACH 080000
        !           243: .Cl SLOAD      000001  in core
        !           244: .Cl SSYS       000002  swapper or pager process
        !           245: .Cl SLOCK      000004  swapping out process
        !           246: .Cl SSWAP      000008  save area flag
        !           247: .Cl STRC       000010  tracing the process
        !           248: .Cl SWTED      000020  trace flag
        !           249: .Cl SULOCK     000040  user settable lock in core
        !           250: .Cl SPAGE      000080  process in page wait state
        !           251: .Cl SKEEP      000100  another flag to prevent swap out
        !           252: .Cl SDLYU      000200  delayed unlock of pages
        !           253: .Cl SWEXIT     000400  working on exiting
        !           254: .Cl SPHYSIO    000800  doing physical i/o (bio.c)
        !           255: .Cl SVFORK     001000  process resulted from vfork()
        !           256: .Cl SVFDONE    002000  another vfork flag
        !           257: .Cl SNOVM      004000  no vm, parent in a vfork()
        !           258: .Cl SPAGI      008000  init data space on demand from inode
        !           259: .Cl SANOM      010000  system detected anomalous vm behavior
        !           260: .Cl SUANOM     020000  user warned of anomalous vm behavior
        !           261: .Cl STIMO      040000  timing out during sleep
        !           262: .Cl SDETACH    080000  detached inherited by init
        !           263: .Cl SOUSIG     100000  using old signal mechanism
        !           264: .Cw
        !           265: .Dp
        !           266: .Pp
        !           267: .Tp Aq Li defunct
        !           268: A
        !           269: .Aq defunct
        !           270: process is one that has exited, but whose parent process has
        !           271: not waited for it.
        !           272: A process that has exited and has a parent that has not
        !           273: yet waited for the process is marked
        !           274: .Aq Li defunct .
        !           275: .Tp Aq Li exiting
        !           276: A process
        !           277: which is blocked trying to exit is marked
        !           278: .Aq Li exiting
        !           279: .Tp
        !           280: .Pp
        !           281: .Nm Ps
        !           282: makes an educated guess as to the file name
        !           283: and arguments given when the process was created
        !           284: by examining memory or the swap area.
        !           285: The method is inherently somewhat unreliable and in any event
        !           286: a process is entitled to destroy this information,
        !           287: so the names cannot be counted on too much.
        !           288: .Sh FILES
        !           289: .Dw /etc/pasdatabase
        !           290: .Di L
        !           291: .Dp Pa /vmunix
        !           292: system namelist
        !           293: .Dp Pa /dev/kmem
        !           294: kernel memory
        !           295: .Dp Pa /dev/drum
        !           296: swap device
        !           297: .Dp Pa /vmcore
        !           298: core file
        !           299: .Dp Pa /dev
        !           300: searched to find swap device and tty names
        !           301: .\" .Dp Pa /etc/psdatabase
        !           302: .\" system namelist, device, and wait channel information
        !           303: .Dp
        !           304: .Sh SEE ALSO
        !           305: .Xr kill 1 ,
        !           306: .Xr w 1
        !           307: .Sh HISTORY
        !           308: A
        !           309: .Nm Ps
        !           310: command appeared in VERSION 6 AT&T UNIX.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.