		SPS  -  Show Process Status
		===========================


Introduction:
    SPS is a intended to be used as a replacement for the standard
    ps(1) program. Its advantages over ps(1) are that it shows more
    useful information, that the displayed information is more
    comprehensible and that it is faster.


    SPS is currently implemented for the following operating systems and
    architectures.  The corresponding Makefiles are also shown here:

	Makefile.4.1		Standard 4.1bsd for Vax
	Makefile.4.2		Standard 4.2bsd, Ultrix 1.x for Vax
	Makefile.4.3		Standard 4.3bsd (or 4.3-tahoe?) for Vax (CCI?)
	Makefile.4.3+NFS	4.3bsd+NFS from Wisconsin (Mt. Xinu?, others?)
	Makefile.ultrix.2.0	DEC Ultrix 2.0 - 2.2 (3.0?)
	Makefile.sun.2.0	Sun 4.2 UNIX Release 2.0 - 2.2 for Sun-2
	Makefile.sun.3.0	Sun 4.2 UNIX Release 3.0 for Sun-2, Sun-3
	Makefile.sun.3.2	Sun 4.2 UNIX Release 3.2 for Sun-2, Sun-3
	Makefile.sun4.3.2	SunOS Sys 4-3.2 for Sun-4
	Makefile.sun.4.0	SunOS 4.0 for Sun-2, Sun-3, Sun-4 (Sun 386i???)

    (I also have a somewhat ancient implementation for V7 on a PDP-11 as well
    as Unisoft Version 1.3 on a MC68000 if anyone is interested).


What SPS does:
    SPS displays wait channels symbolically, rather than as hexadecimal
    addresses.  (If you wish to teach SPS about a new sort of device,
    you must add an entry in the symbol table (globals2.c) as well as
    increasing the size of that table (NWAITSTATE in sps.h)).

    SPS sorts processes before listing them, the order reflecting the
    relationship of the processes.  A child process is listed
    underneath its corresponding parent and is indented to depict the
    exact relationship.  SPS also indicates setuid processes.

    SPS displays such values as the resident and virtual sizes of
    system processes.  It accepts a whole range of options to control
    the output.  By default, SPS lists information about one's own
    processes.  Other options instruct it to be verbose (the "v"
    option), to list all the command arguments of a process (the "w"
    option) or to list the environment strings of that process (the "e"
    option).  Similarly, there are options to control which processes
    are to be displayed.  The "a" option tells it to describe all
    processes and the "b" option tells it to describe "busy" processes;
    the latter is useful if you wish to find out what is loading your
    system.  There are also options to select the output according to
    user, controlling tty or process number.

    SPS keeps its information in an information file; by default, this
    is /etc/spsinfo. This means that it can avoid having to do an
    expensive nlist() operation each time it is run.  It must be
    reinitialised (with the "i" option) if new users are added to
    /etc/passwd or if a new version of /vmunix is installed.


How to build SPS:
    1. In order to compile and install SPS, first unbundle the four shell
       archive files.
    2. Check that the define statements in sps.h are large enough for
       your system.  In particular, you may need to increase MAXTTYS
       to reflect the number of tty devices in /dev.  The parameter
       MAXUSERS defines the maximum number of users defined in the
       password file (or through the Yellow Pages).  Because the
       user-ids are held in an internal hash table, this should
       probably be at least double the number of actual users.
    3. Choose an appropriate Makefile from the table above and compile
       the source files.  For example:
	   % make -f Makefile.sun.3.2
    4. Try running SPS.  First, a suitable information file must be
       initialised.  It should then be able to display information
       concerning running processes on your system:
	     # Initialise SPS.  Ignore any error messages at this stage.
	   % sps -i -j /tmp/spsinfo
	     # Instruct SPS to list all active processes in verbose format.
	   % sps -j /tmp/spsinfo va
    5. If this all works, install SPS with the appropriate Makefile
       and reinitialise it:
	   % make -f Makefile.sun.3.2 install
	   % sps -i


Bug reports:
    Send all bug reports, fixes, comments and suggestions to Robert Ward at -

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    J. Robert Ward,
    Olsen & Associates, Seefeldstrasse 233, CH-8008 Zuerich, Switzerland

Telephone:  +41 1 552224
Uucp:	    ... {uunet,ukc, ... }!mcvax!cernvax!olsen!robert
Bitnet:	    robert%olsen.uucp@cernvax.bitnet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
