procps version 0.8 /proc programs for Linux:
free, tload, ps, pstree, w, psupdate etc.
README for version 0.8 of procps
Read this, really.
Thanks to all the people who have helped write programs and
documentation for this suite of /proc programs. This should be the
final BETA release -- if this release shows few or no bugs, it will be
re-released in bug-free (hah) form as version 1.0.
Please send any comments to [email protected]
Here are the notes for the individual programs:
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.
The /etc/psupdate distributed in /procps is still not very good. If
you want to use both procps and kmemps, *use kmemps* to create the
/etc/psdatabase. THIS IS IMPORTANT. /etc/psupdate makes a file
which, though it is mostly compatible, might cause problems on some
top now includes the much-wanted q command-line option. This causes
redisplay to happen without pause, and, if you are superuser, it also
causes top to run at the highest possible priority.
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.
Linus's free has been replaced with one that has 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 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
[email protected] for writing the man pages for w and uptime,
fuser is now a real version written in C. Instead of documenting
limitations, as the sun version does, Werner fixed them while writing
this version. For those that don't know, fuser identifies processes
using files (similar to Sun's or SGI's fuser).
killall kills processes by name, e.g. "killall -HUP named". Thanks,
pstree shows the currently running processes as a tree. Thanks again...
*X PROGRAMS* If you want xload, please "make xload". Ditto for xmem
and XConsole. To make all of the X programs, "make xprogs". Because
not everyone has X, it is not part of the make all target. The
install target now installs the application default files for both of
these programs, if the programs exist.
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!!!!!!!!!!!!!!!!!!!!!!
THIS IS VITALLY IMPORTANT -- I WOULDN'T SCREAM OTHERWISE...
Also, I know that the Makefile created by the Imakefile is not yet
used to its best advantage -- I am not a real X hacker, and all the X
programs were donated by someone else. In the mean time, I
apologize for any damaged sensibilities. If you are too offended, I
encourage you to send me a fixed version, preferably as a patch.
*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
Leave out the make xprogs if you don't have X installed. Don't worry
too much about the su before make xprogs, as 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.