README for version 0.61 of procps
=================================
Read this, really.
==================

Thanks to all the people who have helped write programs and
documentation for this suite of /proc programs.

Also, if you would like to write a good C version of fuser that works
like the standard fuser, please contact me.  The perl script which is
included is perhaps not the most complete or standard implementation.
Furthermore, not everyone has perl.  At least, I don't, so I have not
tried the script myself.  Caveat Emptor!

I am actively collecting programs that use the /proc filesytem.  I
hope to make libproc.a even more useful as we add programs.  I
mentioned in a previous README that I might include a netstat program
using /proc and future extensions:  Well, I helped write those
extensions, and the standard version of netstat in future net releases
will use the /proc/net/* files that should appear in patchlevel 8.

Please send any comments to johnsonm@stolaf.edu


*PS*
ps has most of the important flags now, and shouldn't give floating
point exceptions or any other type of core dump.  If it does, please
tell me.  It also shouldn't give cpu use higher than 99.9 percent.

STOP THE PRESS!!!!  procps now can give symbolic addresses as well as
numeric ones for the WCHAN field in the ps -l listing.  However, like
for the kmem ps, this requires that psdatabase be updated.  Unlike
kmemps, no version checking is done at this time, so if you forget to
update the database, you'll get funny addresses.  There is no ps U
option for updating the psdatabase; instead, a psupdate program is
included.  It defaults to installing in /etc/psupdate, and can be put
in your /etc/rc so that it is called on boot, or in your
/etc/lilo/install script (if you have one).  Your choice.  Alternate
namelist support is not available.  If you want that, use kmemps.  Oh,
yeah, psupdate is not suid root, and so you must be root to run it.
If you like, make it suid root, and then anyone can run it.  I don't
guarantee that it is a safe suid program, but I don't know anything in
it to be unsafe, either.  If you don't want to deal with a psdatabase,
you can safely ignore this, and not create the psdatabase.  ps will
simply default back to numeric addresses in the WCHAN field.


*TLOAD*
tload is included.  This is now based on the kmem ps one.  I have also
included a different version with a slightly different display, called
tload2.c.  I have not included an entry in the makefile, but if you
want to play with it, be my guests.  Please tell me what you think,
and why, if you have any strong opinions on the subject.


*FREE*
Linus's free has been replaced with one that with slightly nicer
formating.  Linus's free has been renamed free.old.c, so if you prefer
the old style, simply "mv free.old.c free.c", "make free"


*W AND UPTIME*
w and a real uptime are included.  They are not exactly the same as
the BSD ones, and I like them that way.  I personally feel that there
is at least one absolutely gratuitous bug in BSD's uptime: If no one
is logged in, it reports "0 user".  This probably didn't seem
important when it was written, but now "rsh <machine> uptime" can
report "0 user" and I find that silly, when it is just as easy to
write it right, "0 users", in the first place.  This w/uptime set are
*not* derived from the BSD source.  Larry Greenfield did most of the
writing for this one.  Thanks, Larry!  Thanks to
tim@mermaid.micro.umn.edu for writing the man pages for w and uptime,
too.


*X PROGRAMS*
If you want xload, please "make xload".  Because not everyone has X,
it is not part of the make all target.  Ditto for xmem and XConsole.
The install target now installs the application default files for both
of these programs, if the programs exist.  To make xload, xmem, and
XConsole, "make xprogs".

XConsole reads and displays messages from /proc/kmsg, and it also
displays the time, date, and kernel version number.  It needs to be
run suid root to read /proc/kmsg, and won't run otherwise.  DON'T USE
THIS IF YOU ARE USING ANY OTHER SYSLOG PACKAGE!!!!!!!!!!!!!!!!!!!!!!


*BUGLETS*
Sorry for the silly little bugs in 0.6.  Thanks to those who brought
them to my attention.  ps should no longer ever dump core while doing
any form of `ps l' and should no longer *require* the use of a
psdatabase, though it will still happily use one.

Also, I know that the Makefile created by the Imakefile is not yet
used to its best advantage: patience.  My roommate is re-writing a doc
on how to write and use Imakefiles, and I will get that hot of the
press one of these days and clean that up.  In the mean time, I
apologize for any damaged sensibilities.


*GNU FINGER PATCH*
I have included a patch for gnu finger, in the file gfinger.patch.  It
allows gnu finger to get its information from the proc filesystem.


*TO MAKE THE PACKAGE*
You will probably want to examine the instdir, xinstdir, and
xdefinstdir variables, and change them if necessary.  You will also
have to be root to run `make install', as it chowns the executables to
root.  Note that they are *not* suid, though, except for Xconsole.

Oh, and as a reward for reading this README files through, here's how
to compile and install the whole package, using all the default programs
and directories:
	make
	su
	make xprogs
	make install
	exit
	make clean

Leave out the make xprogs if you don't have X installed.  Don't worry
too much about the su before make install, only XConsole is made suid
root, and that is pretty safe.  It doesn't accept input of any kind,
and only reads /dev/kmsg.  Indeed, reading /dev/kmsg is the only
reason why it is suid root.  See the warning above (under *X
PROGRAMS*) about XConsole

The utmp program is just for debugging.  Don't worry about it unless
you are having problems with any of these programs, you mail me, and I
ask you to run it.
