📄 news
字号:
psupdate moved to /usr/sbin, since it is no longer necessary.Added wmconfig for Red Hat systems (others can use it if theywant; if/when wmconfig becomes standard, I'll move it into theinstall target of the makefile).Ugly hack to get around a problem some people were getting witha too-small variable.The usage message no longer recommends a deprecated syntax. :-)NEWS for version 1.2.2 of procpsMade procps report its version number correctly.Fixed typo in w.1 man page.NEWS for version 1.2.1 of procpsNew address for bug reports against procps: procps-bugs@redhat.com(That's not an official service of Red Hat Software, just an aliasfor 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 procpsOriginal 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, asit 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 yourfavorite Linux distributor.free's display fixed in several ways: no such thing as cached swap,buffer+ display was incorrectly calculated, and buffer calculationsdidn't include cached memory.Removed mknewpty, because it wasn't perfect and collides with MAKEDEV.NEWS for version 1.01 of procpstop bugfix release. Fixes memory leak, extra line after loadavg and brokenno-idle mode. Also be a little more aggressive utmp 'from host' filtering in w.NEWS for version 1.00 of procpsFixed 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. Theold top is available for at least a release or so as "top.old". See the new manpage for details, or just run it and type 'h'. This is courtesy of HelmutGeyer. Thanks Helmut!egrep -n '\<(tgetent|cm|top_clrtoeol|top_clrtobot|cl|ho|me|md|mr|tgoto)\>' ontop.c and cleaned up all terminal strings being just dumped to stdout. All suchstrings are now tputs'd out with putchar. This should fix a lot of problemspeople have been having.Also cleaned up non-HZ based references to jiffies -> real time conversion. Imay 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 removedas are the imake generated makefiles. Shared lib generation bug for libprocfixed. In general the build should be a lot cleaner, but may still have a glitchor two.Fixed a few (but probably not all) Alpha compatibility bugs dealing with memoryalignment. Please let me know if I missed any, or if you like give me a testaccount on some Alpha. I don't have access to any Linux other than x86 which isnotoriously 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 isaccurate 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. toactually 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 numberin hexadecimal for the tty field. That way if /etc/psdevtab cannot be createdrescanning the /dev directory can be short-circuited. Fixed incorrect filecreation mode for /etc/psdevtab. I just forgot to alter my original 0 mode tosomething reasonable like 0664. Added fallback locations for psdevtab. Firstit 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 ofthe rw mmap. I still read it with mmap, but there should be no trouble withthat even in ancient kernels. Also changed the semantics such that if anydevtab file is found, it is assumed to be correct regardless of the relativetimestamps of /dev and the file. Hopefully all this will avoid any unnecessaryslowness. I'm still willing to reactivate the older somewhat broken code todo 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 nolonger necessary. Hopefully this will make kernel configuration managementsimpler requiring only the zImage and System.map, which being the stripped(compressed) kernel and the symbol table before stripping are naturalcomplements. This is probably how things should have been all along even goingback to kmem ps days four years ago. Oh well. This change should make dealingwith x86, AXP, Sparc, etc binary formats for kernels a lot easier. All that isrequired 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 isthe same as numerical order and the addresses all have to be the same asciilength and I haven't tested to see how resilient it is to bogus internal recordslike multiple newlines in a row. Hopefully aren't editting and commenting theirSystem.map files. ;-) This could actually work on "sort < /proc/ksyms" also ifwe 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`/psdatabaseThe reason for the /lib/modules/*/file location is that I imagine many peoplehave enough trouble keeping track of kernel version-dependent files in thefilesystem 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 thisworks for me. I know not everyone uses modules, but it's just a search pathfolks... In case it isn't obvious from all of the above, this means thatpsupdate is no longer necessary. I include it in this release and includerecognition of it because I realize that some distributions may have scriptswhich depend on the old semantics. I doubt there will ever be a compellingreason to not include support for generating or reading the old psdatabasefiles, but they aren't necessary anymore if you have the System.map files fromthe kernel builds.I'm not 100% sold on the ordering of the search path, but I think it makessense. 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 isbasically the same format of <0 padded hex> ... <symbol>\n.Thanks to Helmut Geyer for the idea of living off the System.map file nativelyand Mike Dean for the idea of using an approximate binary search instead ofpadding out the lines of System.map with tons of spaces to get equal recordlengths. The cost of doing it approximately is mild, mostly consisting of lotsof scans to get to the next or last newline and a logarithmically few extrasteps to get to the desired record. Only an order of magnitude guess for therecord length is necessary. The code is all mine, though, so all bugs are dueto me alone.NEWS for version 0.99a of procps================================This is a quick bug-fix release to solve a few thorny problems with my probablyoverzealous attempt to use the inline-assembly string.h and a Makefile bug ortwo. It also fixes free to +/- the cached column too and makes it ignore thenew extra-pretty non-numeric lines that /proc/meminfo is spitting out. It alsofixes the lack of set_linux_verion() in 'w' that caused no command line to bedisplayed. I am still working on a much condensed 'w' that should be a loteasier 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 kernelsso I may have to rewrite devname.c to not use MAP_WRITE to create psdevtab. Somepeople have been claiming that /dev changes at boot-up in some rc scripts. I'mnot really sure why they would want to do that. Seems kind of paranoid tocontinually re-make /dev/log. Anyhow, I'm open to suggestions for psdevtabbehaviors. I've been thinking a /tmp/psdevtab fallback (with a careful worldreadable 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... :-)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -