NEWS should be NEW
This commit is contained in:
parent
6e2f6ca6f6
commit
4bd1dfbb50
688
NEWS
688
NEWS
@ -1,645 +1,43 @@
|
||||
NEWS: what has changed recently with procps, in reverse cronological order.
|
||||
Please send bug reports to acahalan@cs.uml.edu
|
||||
|
||||
*** THIS FILE DOES NOT INCLUDE RECENT CHANGES ***
|
||||
|
||||
|
||||
NEWS for version 2.0.7 of procps
|
||||
|
||||
SMP support has been added to top. This adds one line to the screen
|
||||
for every processor. There is also an (off by default) field to show
|
||||
the last processor that a process used that replaced the long-dead
|
||||
LIB field. Please send feedback, positive and negative, on these
|
||||
changes to procps-bugs@redhat.com
|
||||
|
||||
The libproc soname has changed to 2.0.7 because of a structure
|
||||
change required to add SMP support.
|
||||
|
||||
Two programs inspired by Solaris's /usr/proc/bin collection have
|
||||
been added: pgrep and pkill. By default, for FSSTND/FHS/LSB compliance,
|
||||
these are installed in /usr/bin; if you want, you can change PROCDIR
|
||||
in Makefile to move them. You can also make a symlink from
|
||||
/usr/proc/bin to /usr/bin if you like.
|
||||
|
||||
The Makefiles have been sanitized a bit more; they are now less messy
|
||||
than they were. There is less duplication between the Makefiles now.
|
||||
|
||||
The man pages that use tables have been fixed to work work broken
|
||||
versions of man.
|
||||
|
||||
The old wmconfig file (specific to Red Hat) has been replaced with a
|
||||
desktop file (common across GNOME and KDE).
|
||||
|
||||
sysctl returns an error code in a condition in which it didn't before,
|
||||
and handles EOF correctly.
|
||||
|
||||
top now only loads System.map when it is actually going to make use
|
||||
of it.
|
||||
|
||||
vmstat has its buffer size increased and handles page size dynamically.
|
||||
|
||||
w has its year display fixed to show the year 2000 as 00 instead of 0,
|
||||
and to try harder to find a process to display.
|
||||
|
||||
watch has a fix for ncurses in recent versions of glibc, and expands
|
||||
tabs so that they display correctly.
|
||||
|
||||
libproc tries to get the default page size from the system header
|
||||
files, but still has a fallback. It also has been extended to allow
|
||||
applications to handle their own error reporting in some important
|
||||
cases. The pwcache has been expanded in size to correctly handle
|
||||
user names longer than 8 characters. It has been expanded to
|
||||
provide the lproc field that shows up as top's LC field. A segfault
|
||||
when /proc is not mounted was fixed. Missing files will cause
|
||||
applications to exit with an error code instead of good exit code.
|
||||
A warning when libproc cannot calculate the HZ value (probably due
|
||||
to a kernel bug) has been supressed by default because it broke
|
||||
people's scripts unnecessarily. A 64-bit memory size reading
|
||||
bug was fixed (/proc/meminfo was read incorrectly).
|
||||
|
||||
A couple of error messages in ps had newlines added to them. ps
|
||||
only opens System.map when it is going to make use of it. The
|
||||
full-page error message has been replaced with a shorter usage
|
||||
message; the full-page command summary is available with --help,
|
||||
and the usage message tells about --help; the full-page summary
|
||||
is now no longer an error message and so it is sent to stdout
|
||||
insteada of stderr. Processes with run times longer than a day
|
||||
now have their runtime displayed correctly. ruser output was fixed.
|
||||
An attempt was made to support one more piece of BSD syntax in the
|
||||
command line arguments, where pids can follow options with no
|
||||
intervening space. The ps man page was made a bit more
|
||||
internally consistent and typos fixed. Fixed a segfault when the
|
||||
PS_FORMAT environment variable was set wrong.
|
||||
|
||||
|
||||
NEWS for version 2.0.6 of procps
|
||||
|
||||
Support for large-memory systems has been added.
|
||||
|
||||
LIBVERSION has been incremented because of an incompatible change
|
||||
in the libproc interface, necessitated by the large-memory support.
|
||||
|
||||
A little more error checking in device idle time calculations.
|
||||
|
||||
Fixed an almost-impossible file descriptor leak in libproc that
|
||||
occasionally showed up in long-running top sessions.
|
||||
|
||||
The fix for top no longer depending on NR_TASKS in 2.0.5 was
|
||||
broken; top would die with more than 204 tasks. This has been
|
||||
fixed.
|
||||
|
||||
|
||||
NEWS for version 2.0.5 of procps
|
||||
|
||||
procps can build against the 2.3.18 kernel source; top no longer
|
||||
depends on NR_TASKS.
|
||||
|
||||
sysctl no longer segfaults with -A; has a few parsing fixes
|
||||
|
||||
|
||||
NEWS for version 2.0.4 of procps
|
||||
|
||||
sysctl can save/restore settings using /etc/sysctl.conf file
|
||||
|
||||
top has -p option and N and A commands.
|
||||
|
||||
vmstat doesn't mind interrupt counter overflow on long-running machines
|
||||
|
||||
ps can now sort by PCPU.
|
||||
|
||||
|
||||
NEWS for version 2.0.3 of procps
|
||||
|
||||
Time calculations fixed (or at least improved...) for SMP machines.
|
||||
In particular, hertz is calculated correctly.
|
||||
|
||||
ps doesn't mind terminal resizing happening while it runs.
|
||||
|
||||
sysctl is a nifty new program! Try it! Carefully! :-)
|
||||
|
||||
w PCPU and WHAT output fixed.
|
||||
|
||||
top batch mode now works without a tty (for instance, via rsh).
|
||||
|
||||
new version of watch has a few new features like --differences.
|
||||
|
||||
sessreg removed; it belongs where it has been for a long time, in X.
|
||||
|
||||
|
||||
NEWS for version 2.0.2 of procps
|
||||
|
||||
Removed xproc entirely; the only thing left there was XConsole, which
|
||||
was equivalent to xconsole -file /proc/kmsg. Added an XConsole shell
|
||||
script which does
|
||||
exec xconsole -file /proc/kmsg "$@"
|
||||
so that folks who depend on XConsole won't be left behind. This also
|
||||
fixes the bug that XConsole effectively removed limitations on which
|
||||
users were allowed to read /proc/kmsg without root having much choice
|
||||
in the matter other than to remove XConsole...
|
||||
|
||||
Removed unused psupdate code (still available as part of procps-1.2.x
|
||||
for anyone who wants to play with it).
|
||||
|
||||
Removed sessreg, as it is included in XFree86 and there is no reason
|
||||
for the duplication.
|
||||
|
||||
Fixed version number generation so that it happens in one place. I'm
|
||||
tired of releasing versions that misreport their version number...
|
||||
|
||||
|
||||
NEWS for version 2.0.1 of procps
|
||||
|
||||
Reverted my changes that had broken Albert's Unix98 compliance.
|
||||
|
||||
Major bugs fixed:
|
||||
o ps now returns failure for "ps <non-existant-pid>"
|
||||
o ps h has reverted to old linux behaviour except in BSD personality;
|
||||
--headers and --no-headers long options have been added
|
||||
o watch buffer overrun fixed (no, not a security hole).
|
||||
|
||||
top has -b and -n options added.
|
||||
|
||||
|
||||
NEWS for version 2.0 of procps
|
||||
|
||||
Thanks to Albert Cahalan for his rewrite of ps, and for making
|
||||
the time for new development of ps that I just didn't have. His
|
||||
research into how ps worked on lots of different UNIX systems
|
||||
really made this version much more usable for a lot of people.
|
||||
|
||||
Read ALL of Albert's comments regarding his 1.9.0 release. If
|
||||
you do not, you may be surprised when scripts fail. I've tried
|
||||
to prepare people for the worst of this by giving out the much-detested
|
||||
warning: `-' deprecated; use `ps aux', not `ps -aux'
|
||||
message for roughly a year and a half.
|
||||
|
||||
|
||||
NEWS for version 1.9.0 of procps
|
||||
|
||||
The ps command now supports simultaneous BSD and Unix98 syntax.
|
||||
There have been many other changes in ps. (complete rewrite)
|
||||
|
||||
Red Hat users should check /etc/sysconfig/network-scripts/ifdown-ppp
|
||||
for the bogus command "ps aul" and change it to "ps axl".
|
||||
|
||||
Scripts that make assumptions about character position are and
|
||||
were broken because fields may overflow. Scripts should parse by
|
||||
whitespace and use -o to get the best results. Command names for
|
||||
swapped out processes are now shown in square brackets instead of
|
||||
parentheses, as required by the Unix98 standard. This problem can
|
||||
be avoided entirely by using a SysV format without -f, using the
|
||||
BSD "c" option, or using the format specifier "comm" with -o.
|
||||
|
||||
Some uses of ps in /etc/rc.d/init.d/functions should probably
|
||||
eventually be changed to stuff somewhat like the following, which
|
||||
would eliminate the need for awk:
|
||||
|
||||
PS_PERSONALITY=linux dead=`ps -p $pid -o pid=`
|
||||
PS_PERSONALITY=linux echo -n `ps -C $1 -o pid=`
|
||||
PS_PERSONALITY=linux pid=`ps -C $1 -o pid=`
|
||||
|
||||
(or use the 'start-stop-daemon' program that Debian has)
|
||||
|
||||
Obsolete files you may have: /etc/psdatabase, /etc/psdevtab,
|
||||
~/.psdevtab, /usr/man/man8/psupdate.8 and /usr/sbin/psupdate.
|
||||
|
||||
|
||||
NEWS for version 1.2.9 of procps
|
||||
|
||||
psupdate has been REMOVED from the default install. You can put it back
|
||||
if you want to by removing two comment characters in the Makefile, but
|
||||
I'm not going to tell you which ones. <RANT>If you can't figure it out,
|
||||
there's a good chance that it won't build on your machine and I don't
|
||||
want the bug reports. One of the main reasons I have removed it is that
|
||||
it is not necessary on a properly-maintained system (that is, System.map
|
||||
exists and is correct) and 4/5ths of the bug reports I have fielded in
|
||||
the past are from users who are not able to maintain a working system
|
||||
complaining that it doesn't work, despite the fact that the INSTALL file
|
||||
explains how to build it in different ways and how to disable it.</RANT>
|
||||
I will delete without response all email asking me how to build psupdate.
|
||||
|
||||
ps now accepts and ignores the g option for those with fingers tied to
|
||||
the g key from too much exposure to BSD. :-)
|
||||
|
||||
Should build properly on ultrasparc -- two people sent the patch and
|
||||
the second time I didn't notice that the patch went in reverted. So
|
||||
I have now reverted the reverted patch to get the right behavior.
|
||||
|
||||
More reliable command-line parsing in vmstat has been added. If vmstat
|
||||
didn't die for you before, you won't notice the difference...
|
||||
|
||||
Fixed a bug where arbitrary users might have been able to corrupt the
|
||||
screen of arbitrary other users running top by creating processes with
|
||||
weird arguments.
|
||||
|
||||
"ps ce" was missing a space character; fixed.
|
||||
|
||||
|
||||
NEWS for version 1.2.8 of procps
|
||||
|
||||
procps.spec now uses buildroot, and can be built by non-root users.
|
||||
This means that the default install targets had to change in the
|
||||
makefiles so that the default install does not require root privs
|
||||
otherwise. Also changed all "bin" ownership to "root" ownership,
|
||||
as kmem-ps has died out and folks won't be automatically doing
|
||||
"chmod u+s /bin/ps" and making their systems insecure thereby.
|
||||
|
||||
XConsole no longer installed setuid root by default. This is safer,
|
||||
if less convenient. Change it if you want to use it as non-root.
|
||||
|
||||
top had disgustingly buggy ^Z handling: you could only suspend once,
|
||||
and if you had suspended, you could no longer read WCHAN information.
|
||||
Both bugs are now fixed.
|
||||
|
||||
xcpustate removed -- it was a very old, obsolete version.
|
||||
Get a new version from ftp://ftp.cs.toronto.edu/pub/jdd/xcpustate
|
||||
|
||||
Now looks for kernel symbols in loadable modules.
|
||||
|
||||
psupdate no longer included in RPM package; the theory is that
|
||||
systems maintained with RPM probably are reasonably recent and
|
||||
up-to-date and so psupdate is extraneous on those systems, only
|
||||
adding an unhelpful dependency on a particular version of
|
||||
binutils.
|
||||
|
||||
top printed two spaces instead of just one between command-line arguments.
|
||||
|
||||
|
||||
NEWS for version 1.2.7 of procps
|
||||
|
||||
Security hole in XConsole fixed.
|
||||
|
||||
Works better with very long uptimes.
|
||||
|
||||
Fixed RPM spec file to have correct libproc soname.
|
||||
|
||||
skill -i works.
|
||||
|
||||
Knows about more major numbers for smart serial boards.
|
||||
|
||||
Fixed some small problems in top.
|
||||
|
||||
|
||||
NEWS for version 1.2.6 of procps
|
||||
|
||||
Signal handling in top fixed in several ways. Main effect: suspending
|
||||
works correctly with glibc now.
|
||||
|
||||
Patch from Linus for change in some kernel structures to 64-bit.
|
||||
This means that libproc has changed soname, as the proc_t data
|
||||
structure has changed incompatibly.
|
||||
|
||||
File descriptor leaks in libproc were fixed.
|
||||
|
||||
|
||||
NEWS for version 1.2.5 of procps
|
||||
|
||||
Potential security hole fixed: if there was no /etc/psdevtab on
|
||||
a system, a user could put a link from /tmp/psdevtab to a file
|
||||
owned by another user, and when that other user ran ps, the
|
||||
file it pointed to would be killed. This wouldn't work for
|
||||
root because root would be able to create /etc/psdevtab first,
|
||||
so arbitrary system files would not be killable. This was fixed
|
||||
by avoiding psdevtab files that are symlinks or have link counts
|
||||
higher than 1, and by not looking for /tmp/psdevtab anymore, as
|
||||
the reason for it to exist is really obsolete.
|
||||
|
||||
w -s output has been fixed. Scripts that depend on w -s output
|
||||
should be examined. The output was broken enough to warrant this
|
||||
change; it was extremely buggy.
|
||||
|
||||
|
||||
NEWS for version 1.2.4 of procps
|
||||
|
||||
I_WANT_A_BROKEN_PS environment variable turns off usage warning.
|
||||
|
||||
"w <username>" sense corrected.
|
||||
|
||||
argument order problem fixed.
|
||||
|
||||
XConsole doesn't dump core on exit any more (only fclose if the
|
||||
file is open...)
|
||||
|
||||
NEWS for version 1.2.3 of procps
|
||||
|
||||
psupdate moved to /usr/sbin, since it is no longer necessary.
|
||||
|
||||
Added wmconfig for Red Hat systems (others can use it if they
|
||||
want; if/when wmconfig becomes standard, I'll move it into the
|
||||
install target of the makefile).
|
||||
|
||||
Ugly hack to get around a problem some people were getting with
|
||||
a too-small variable.
|
||||
|
||||
The usage message no longer recommends a deprecated syntax. :-)
|
||||
|
||||
NEWS for version 1.2.2 of procps
|
||||
|
||||
Made procps report its version number correctly.
|
||||
Fixed typo in w.1 man page.
|
||||
|
||||
NEWS for version 1.2.1 of procps
|
||||
|
||||
New address for bug reports against procps: procps-bugs@redhat.com
|
||||
(That's not an official service of Red Hat Software, just an alias
|
||||
for me so that bugs get filed properly where I don't lose them...)
|
||||
|
||||
Better memory checks.
|
||||
Fixed a file descriptor leak.
|
||||
In top, the space key updates immediately.
|
||||
Fixed broken signal code in top.
|
||||
Fixed broken screen size calculations in top.
|
||||
Fixed broken user count calculations in top.
|
||||
Fixed broken time difference calculations in w.
|
||||
Link libproc against libc explicitly for better co-existance with libc.
|
||||
|
||||
NEWS for version 1.2 of procps
|
||||
|
||||
Original author/maintainer, Michael K. Johnson <johnsonm@redhat.com>,
|
||||
has taken over maintenance again.
|
||||
|
||||
psmisc removed, as it is better maintained separately. xload removed,
|
||||
as it is better maintained as part of XFree86. mknewpty removed, as
|
||||
it duplicates /dev/MAKEDEV and MAKEDEV is maintained.
|
||||
|
||||
Support for 2.1.x kernels and for glibc 2.0.5.
|
||||
|
||||
Lots of documentation updates.
|
||||
|
||||
BFD support and shared library enabled by default.
|
||||
|
||||
Binaries are no longer included in the archive -- get them from your
|
||||
favorite Linux distributor.
|
||||
|
||||
free's display fixed in several ways: no such thing as cached swap,
|
||||
buffer+ display was incorrectly calculated, and buffer calculations
|
||||
didn't include cached memory.
|
||||
|
||||
Removed mknewpty, because it wasn't perfect and collides with MAKEDEV.
|
||||
|
||||
NEWS for version 1.01 of procps
|
||||
|
||||
top bugfix release. Fixes memory leak, extra line after loadavg and broken
|
||||
no-idle mode. Also be a little more aggressive utmp 'from host' filtering in w.
|
||||
|
||||
NEWS for version 1.00 of procps
|
||||
|
||||
Fixed the ps -t without a -a segfault bug. Royal screwup on my part.
|
||||
Updated libproc parsing routine for the new vsize output as of 1.3.91-ish.
|
||||
Expanded the room for the FLAGS in ps -l due to high order bits now being set.
|
||||
|
||||
Added a brand new top to the distribution. Highly run-time configurable. The
|
||||
old top is available for at least a release or so as "top.old". See the new man
|
||||
page for details, or just run it and type 'h'. This is courtesy of Helmut
|
||||
Geyer. Thanks Helmut!
|
||||
|
||||
egrep -n '\<(tgetent|cm|top_clrtoeol|top_clrtobot|cl|ho|me|md|mr|tgoto)\>' on
|
||||
top.c and cleaned up all terminal strings being just dumped to stdout. All such
|
||||
strings are now tputs'd out with putchar. This should fix a lot of problems
|
||||
people have been having.
|
||||
|
||||
Also cleaned up non-HZ based references to jiffies -> real time conversion. I
|
||||
may have missed one or two, though...
|
||||
|
||||
Cleaned up some Makefile things. make distclean; make should really work now.
|
||||
removed function pointer warnings in xcpustate.c. .depend is properly removed
|
||||
as are the imake generated makefiles. Shared lib generation bug for libproc
|
||||
fixed. In general the build should be a lot cleaner, but may still have a glitch
|
||||
or two.
|
||||
|
||||
Fixed a few (but probably not all) Alpha compatibility bugs dealing with memory
|
||||
alignment. Please let me know if I missed any, or if you like give me a test
|
||||
account on some Alpha. I don't have access to any Linux other than x86 which is
|
||||
notoriously forgiving about unaligned memory accesses. Thanks to Alfred Arnold
|
||||
(a.arnold@kfa-juelich.de) and Harald Koenig for their help so far with this.
|
||||
|
||||
Completely (well almost) re-wrote 'w'. From on by default, J/PCPU display is
|
||||
accurate to 0.01s. w and top use readproc, so snap.c has gone away completely.
|
||||
|
||||
'skill' should actually work now, but you may have to use '-c', '-u', etc. to
|
||||
actually get it to parse the command line correctly.
|
||||
|
||||
*** Significant changes in psdevtab inverse device name resolution
|
||||
------------------------------------------------------------------
|
||||
Extended semantics of the -n (numeric) option to output the full device number
|
||||
in hexadecimal for the tty field. That way if /etc/psdevtab cannot be created
|
||||
rescanning the /dev directory can be short-circuited. Fixed incorrect file
|
||||
creation mode for /etc/psdevtab. I just forgot to alter my original 0 mode to
|
||||
something reasonable like 0664. Added fallback locations for psdevtab. First
|
||||
it tries /etc/psdevtab, then /tmp/psdevtab and then $HOME/.psdevtab. Also,
|
||||
decided to go ahead and create the devtab file with regular old write instead of
|
||||
the rw mmap. I still read it with mmap, but there should be no trouble with
|
||||
that even in ancient kernels. Also changed the semantics such that if any
|
||||
devtab file is found, it is assumed to be correct regardless of the relative
|
||||
timestamps of /dev and the file. Hopefully all this will avoid any unnecessary
|
||||
slowness. I'm still willing to reactivate the older somewhat broken code to
|
||||
do the mapping without any file as a fallback if the file doesn't exist.
|
||||
|
||||
*** Significant changes in psdatabase/WCHAN inverse name resolution
|
||||
-------------------------------------------------------------------
|
||||
libproc reads directly from System.map, so psupdate and /etc/psdatabase are no
|
||||
longer necessary. Hopefully this will make kernel configuration management
|
||||
simpler requiring only the zImage and System.map, which being the stripped
|
||||
(compressed) kernel and the symbol table before stripping are natural
|
||||
complements. This is probably how things should have been all along even going
|
||||
back to kmem ps days four years ago. Oh well. This change should make dealing
|
||||
with x86, AXP, Sparc, etc binary formats for kernels a lot easier. All that is
|
||||
required of System.map is that there be exactly 3 space delimited columns:
|
||||
"address[single space]anything_with_no_spaces[single space]symbol[newline]"
|
||||
[ Well, ok, the addresses have to be zero padded so that lexicographic order is
|
||||
the same as numerical order and the addresses all have to be the same ascii
|
||||
length and I haven't tested to see how resilient it is to bogus internal records
|
||||
like multiple newlines in a row. Hopefully aren't editting and commenting their
|
||||
System.map files. ;-) This could actually work on "sort < /proc/ksyms" also if
|
||||
we generalize the behavior to work with either two or three columns. ]
|
||||
|
||||
We take advantage of the following files in this order:
|
||||
PS_SYSTEM_MAP # may only point to System.map, not psdatabase
|
||||
/boot/System.map-`uname -r`, # Note: this is the preferred path
|
||||
/boot/System.map
|
||||
/lib/modules/`uname -r`/System.map
|
||||
/etc/psdatabase
|
||||
/boot/psdatabase-`uname -r`,
|
||||
/boot/psdatabase,
|
||||
/lib/modules/`uname -r`/psdatabase
|
||||
|
||||
The reason for the /lib/modules/*/file location is that I imagine many people
|
||||
have enough trouble keeping track of kernel version-dependent files in the
|
||||
filesystem as it is, so I didn't want to invent a new place. I keep things in
|
||||
/boot myself and don't usually have more than 8 or so kernel versions, so this
|
||||
works for me. I know not everyone uses modules, but it's just a search path
|
||||
folks... In case it isn't obvious from all of the above, this means that
|
||||
psupdate is no longer necessary. I include it in this release and include
|
||||
recognition of it because I realize that some distributions may have scripts
|
||||
which depend on the old semantics. I doubt there will ever be a compelling
|
||||
reason to not include support for generating or reading the old psdatabase
|
||||
files, but they aren't necessary anymore if you have the System.map files from
|
||||
the kernel builds.
|
||||
|
||||
I'm not 100% sold on the ordering of the search path, but I think it makes
|
||||
sense. If you have reasons why it should be different I may be convincable.
|
||||
Also I'm interested in exactly what the output of 'nm' looks like on Alpha,
|
||||
Sparc, etc., architectures. It should be easy enough to adapt the code if it is
|
||||
basically the same format of <0 padded hex> ... <symbol>\n.
|
||||
|
||||
Thanks to Helmut Geyer for the idea of living off the System.map file natively
|
||||
and Mike Dean for the idea of using an approximate binary search instead of
|
||||
padding out the lines of System.map with tons of spaces to get equal record
|
||||
lengths. The cost of doing it approximately is mild, mostly consisting of lots
|
||||
of scans to get to the next or last newline and a logarithmically few extra
|
||||
steps to get to the desired record. Only an order of magnitude guess for the
|
||||
record length is necessary. The code is all mine, though, so all bugs are due
|
||||
to me alone.
|
||||
|
||||
NEWS for version 0.99a of procps
|
||||
================================
|
||||
This is a quick bug-fix release to solve a few thorny problems with my probably
|
||||
overzealous attempt to use the inline-assembly string.h and a Makefile bug or
|
||||
two. It also fixes free to +/- the cached column too and makes it ignore the
|
||||
new extra-pretty non-numeric lines that /proc/meminfo is spitting out. It also
|
||||
fixes the lack of set_linux_verion() in 'w' that caused no command line to be
|
||||
displayed. I am still working on a much condensed 'w' that should be a lot
|
||||
easier to maintain and a readproctree that should be usable by both 'ps',
|
||||
'pstree', and 'w'.
|
||||
|
||||
Apparently memory-mapped files are pretty broken before the early 1.3.X kernels
|
||||
so I may have to rewrite devname.c to not use MAP_WRITE to create psdevtab. Some
|
||||
people have been claiming that /dev changes at boot-up in some rc scripts. I'm
|
||||
not really sure why they would want to do that. Seems kind of paranoid to
|
||||
continually re-make /dev/log. Anyhow, I'm open to suggestions for psdevtab
|
||||
behaviors. I've been thinking a /tmp/psdevtab fallback (with a careful world
|
||||
readable umask to avoid repetition) or maybe a $HOME/.psdevtab fallback too.
|
||||
|
||||
NEWS for version 0.99 of procps
|
||||
===============================
|
||||
This file is a brief catalog of new features or developments in the package.
|
||||
For general information about using the programs see their man pages.
|
||||
|
||||
NEW PACKAGES OR PROGRAMS
|
||||
========================
|
||||
|
||||
LIBPROC
|
||||
I've modularized some routines and fixed some long standing bugs. Replaced
|
||||
the regex() recognition of /proc/PID with a simple check of the first
|
||||
character of the filename being a digit which should be just as safe.
|
||||
|
||||
Added an opendir/readdir/closedir style interface to the process table. The
|
||||
new interface seems cleaner, more intuitive and generally more applicable
|
||||
(to me anyway). The only program which uses the new interface is ps. 'w'
|
||||
will follow soon. 'top' may take a while longer... openproc,readproc, and
|
||||
closeproc are implemented. I still want to do readproctab and rewindproc,
|
||||
too though.
|
||||
|
||||
Added some kernel and package versioning things to make it easier to be run
|
||||
time adaptable. Also updated sysinfo to understand any /proc/meminfo. A
|
||||
/proc/stat parser should probably be in there as well with the appropriate
|
||||
updates to vmstat and xcpustate.
|
||||
|
||||
The general direction procps should move in is lightweight command-line or
|
||||
X11/Motif display/format programs and compartmentalized libproc routines to
|
||||
parse all of the /proc files. This isolates the utilities from kernel
|
||||
versioning.
|
||||
|
||||
TTY DEVICE NUMBER TO NAME RESOLUTION
|
||||
Tty device name <-> number mapping has been completely generalized. It now
|
||||
stat's every character special file in /dev and builds a memory mapped table
|
||||
of device names indexed in a way that makes lookup of name from number a
|
||||
fast, constant time process. The extra overhead incurred by building
|
||||
/etc/psdevtab is non-negligible if you have a large /dev and permissions to
|
||||
write the file (or its directory) are required to update the file (which is
|
||||
done if it does not exist or if /dev is newer than /etc/psdevtab).
|
||||
|
||||
Hence `root' should `ps' shortly after any modification to /dev (or chmod
|
||||
666 /etc/psdevtab :-) to avoid ordinary users rebuilding it over and over.
|
||||
Since such modifications are rare, hopefully having a fallback $HOME
|
||||
location will not be necessary. If the file is up to date, the overhead
|
||||
incurred is very small. The generality bought is essentially optimal since
|
||||
`ps' tailors its notion of name<->devno mapping according to the /dev of the
|
||||
local system which is the canonical repository of this information.
|
||||
|
||||
In principle the name database could encompass all device majors. The file
|
||||
would be large, but since I use mmap to access it, only the pages with the
|
||||
major of interest are ever actually read off the disk. Right now I just use
|
||||
the majors 2,3,4,5,19,20 which should cover both old and new systems with
|
||||
both master and slave devices (I know... no reason for the masters... :-)
|
||||
and the multiport serial devices. Also the 'mknewpty' script is provided
|
||||
to update your /dev directory to the new pty master/slave devices.
|
||||
|
||||
The tty abbreviation scheme has been rationalized to match device special
|
||||
files. The leading "tty" or "cu" is stripped, so cua3 -> a3, tty1 -> 1 and
|
||||
ttyp9 -> p9. The t flag in ps now works with a full device names and to
|
||||
pick up processes even if they aren't owned by the owner of ps, e.g.
|
||||
"ps tcua0" picks up gpm for everyone. This seems desirable.
|
||||
|
||||
WATCH
|
||||
A little program similar to another called 'vis' which simply re-displays
|
||||
in a polling fashion the output of other programs. "watch ps --sort:utime"
|
||||
might be dubbed a poor man's 'top'. Though this has been included in procps
|
||||
for some time it hasn't been built or installed by default. It is now.
|
||||
|
||||
SKILL/SNICE
|
||||
I have written the necessary machine-dependant file for 'skill' and tested
|
||||
it somewhat under Linux. It seems to mostly work, but there are probably a
|
||||
few glitches. This is a generalization of the 'killall' concept. You can
|
||||
send signals or change priority based upon user, command basename (the same
|
||||
that 'ps c' gives), terminal, etc. If you have a user named 'satan' "skill
|
||||
-u satan" will kill all their processes. :-) See the man page for more
|
||||
details.
|
||||
|
||||
An annoyance of the current implementation is that although permission to
|
||||
send signals is based upon the real user id, /proc only gives the effective
|
||||
uids of processes. Hence processes which you *could* kill because they're
|
||||
suid-root (X say) won't be detected as kill-able. Either /proc + readproc
|
||||
need to be updated to report the *real* uid to skil or skill needs to try to
|
||||
send the signal even if the uid doesn't match.
|
||||
|
||||
|
||||
CHANGES TO OLD PROGRAMS
|
||||
=======================
|
||||
|
||||
MAKEFILE
|
||||
The directory hierarchy has been restructured. It is now easier to have the
|
||||
multiple components to the suite under nearly autonomous administration.
|
||||
The library code has also been moved to a subdirectory. The best thing
|
||||
about the new setup is that things like Imake generated Makefiles with
|
||||
preconceived notions of 'make install' can be used without getting into the
|
||||
business of re-writing component package makefiles.
|
||||
|
||||
There is now an option to build a shared libproc.a which reduces 'ps' and
|
||||
'top' sizes by about 10K apiece. Simply change the value of SHARED. Also,
|
||||
one may optionally install the library header files and archive/shared
|
||||
object files into standard system directories. There are no library man
|
||||
pages yet, but the headers are fairly descriptive.
|
||||
|
||||
PS
|
||||
Several long standing bugs have been fixed and much of the internal code was
|
||||
re-written to use my new directory-style interface to the process table. In
|
||||
particular if sorting is disabled (with '-o') the process entries are output
|
||||
to the terminal as soon as possible (making it more helpful under heavy
|
||||
system load).
|
||||
|
||||
I am considering several new additional features to `ps' including
|
||||
regex filtering of which processes to list,
|
||||
"grep -s" silent testing for existing of processes matching criteria,
|
||||
run-time/user-defined output formats.
|
||||
I would also like to completely phase the w,top code which uses the snapshot
|
||||
interface instead of the 'readproc' interface. And of course adding long
|
||||
options for the rest of the options would be nice too (I may not get around
|
||||
to doing this anytime really soon so patches which implement any of these
|
||||
things would most likely be gleefully accepted).
|
||||
|
||||
PSUPDATE
|
||||
psupdate has been updated to work with ELF kernels. If you compile it as
|
||||
an ELF binary it will handle both a.out and ELF kernels. If you compile it
|
||||
as an a.out binary it will only handle a.out kernels. Many thanks to Jeff
|
||||
Uphoff.
|
||||
|
||||
psupdate has also been updated to work with any binary type supported
|
||||
by libbfd. This is the default configuration.
|
||||
Many thanks to David Mossberger-Tang.
|
||||
|
||||
TOP
|
||||
A user-defined format would be nice here too. Alternate sorting criteria
|
||||
(top memory users instead of top CPU users, etc.) may be another interesting
|
||||
alternative. Of course the sorting in ps can do all of that, but it doesn't
|
||||
have any optimal screen update action going down... :-)
|
||||
Recent changes:
|
||||
|
||||
designed to support Linux 2.0 through 2.5.41 and beyond
|
||||
new top, with optional: color, windowing, SMP stats
|
||||
runs faster
|
||||
more "it crashes" bugs fixed
|
||||
top shows IO-wait time
|
||||
vmstat can show active/inactive memory stats
|
||||
real-time info supported in ps
|
||||
correct "ps -o size" and "ps --sort size"
|
||||
new maintainers
|
||||
reduced memory usage for ps
|
||||
allow large PIDs to be specified
|
||||
SELINUX support is just a recompile away
|
||||
the "F" column shrank, so "ps -l" has more command name room
|
||||
64-bit time reduces the overflow problem
|
||||
support S/390, IA-64 emulator, and user-mode Linux
|
||||
oldps is gone
|
||||
configure script -- use "make -f Makefile.noam" as a backup
|
||||
"w" program better at determining what a user is doing
|
||||
more stable
|
||||
code at http://procps.sf.net/ now (SourceForge)
|
||||
|
||||
Earlier changes, for those not using Debian already:
|
||||
|
||||
more stable
|
||||
runs faster
|
||||
-F format option
|
||||
better error reporting in ps for unknown format specifiers
|
||||
BSD's sysctl options -b and -X
|
||||
top displays well on large-memory systems
|
||||
old BSD-style select-by-PID ("ps l$$")
|
||||
15-character user names
|
||||
ps 'f' ASCII art forest fixed
|
||||
add SIGSYS on i386
|
||||
top reports real RSS value
|
||||
large-memory systems work
|
||||
minimal ps program for embedded systems (minimal.c)
|
||||
BSD personality process selection fixed
|
||||
support locale (French) with ',' and '.' mixed up
|
||||
pgrep program
|
||||
includes the "kill" and "nice" programs
|
||||
don't chop non-tty ps output at 80 columns
|
||||
|
Loading…
Reference in New Issue
Block a user