mirror of
https://gitlab.com/procps-ng/procps.git
synced 2024-11-28 12:33:27 +08:00
2345 lines
95 KiB
Groff
2345 lines
95 KiB
Groff
.ig igEND
|
||
. manual page for NEW top
|
||
. Copyright (c) 2002, by: JC Warner & Associates, Ltd.
|
||
.
|
||
. Permission is granted to copy, distribute and/or modify this document
|
||
. under the terms of the GNU Free Documentation License, Version 1.1 or
|
||
. any later version published by the Free Software Foundation;
|
||
. with no Front-Cover Texts, no Back-Cover Texts, and with the following
|
||
. Invariant Sections (and any sub-sections therein):
|
||
. all .ig sections, including this one
|
||
. DIFFERENCES / New Features
|
||
. STUPID TRICKS Sampler
|
||
. NOTES and Rantings
|
||
. AUTHOR
|
||
.
|
||
. A copy of the Free Documentation License is included in the section
|
||
. entitled "GNU Free Documentation License".
|
||
.
|
||
. [ that section is found near the end of this document & ]
|
||
. [ can be made printable by disabling the .ig directive! ]
|
||
.
|
||
.igEND
|
||
|
||
.\" Setup ////////////////////////////////////////////////////////////////
|
||
\# ** Comment out '.nr' or set to 0 to eliminate WIDTH fiddlin' !
|
||
.nr half_xtra 4
|
||
.
|
||
.ll +(\n[half_xtra] + \n[half_xtra])
|
||
.
|
||
\# Special right justify macros ---------------------
|
||
\# - right justify begin
|
||
.de Rjb
|
||
.ll -\n[half_xtra]
|
||
.rj \\$1
|
||
..
|
||
\# - right justify end
|
||
.de Rje
|
||
.ll +\n[half_xtra]
|
||
..
|
||
\# Jimmy's darn Bullet style ------------------------
|
||
.de Jbu
|
||
.IP "-" 3
|
||
..
|
||
\# - bullet continuation paragraph
|
||
.de Jp
|
||
.IP "" 3
|
||
..
|
||
\# New features/differences style -------------------
|
||
.de New
|
||
.IP "-*-" 5
|
||
..
|
||
\# Screen image style -------------------------------
|
||
.de Img
|
||
.IP "" -4
|
||
.Rjb 26
|
||
..
|
||
\# Code image style ---------------------------------
|
||
.de ImgC
|
||
.IP "" -4
|
||
.Rjb 20
|
||
..
|
||
\# Screen narrative (wide narrative) style ----------
|
||
.de Scr
|
||
.PP
|
||
.in -4
|
||
..
|
||
\# Special emphasis ---------------------------------
|
||
.de Zzz
|
||
.ce
|
||
-*- -*- -*-
|
||
..
|
||
.
|
||
\# Commonly used strings (for consistency) ----------
|
||
\# - a real em-dash, darn-it
|
||
.ds EM \ \fB\-\-\ \fR
|
||
\# - these two are for chuckles, makes great grammar
|
||
.ds Me top
|
||
.ds ME \fBtop\fR
|
||
\# - hey, these two ain't too shabby, either
|
||
.ds Us this\ \*(Me
|
||
.ds US \fBthis\fR\ \*(Me
|
||
\# - other misc strings for consistent usage/emphasis
|
||
.ds F \fIOff\fR
|
||
.ds O \fIOn\fR
|
||
.
|
||
.ds AM alternate\-display mode
|
||
.ds AS asterisk ('*')
|
||
.ds CF configuration file
|
||
.ds CI interactive command
|
||
.ds CO command\-line option
|
||
.ds CW \'current' window
|
||
.ds FM full\-screen mode
|
||
.ds MP \fBphysical\fR memory
|
||
.ds MS \fBshared\fR memory
|
||
.ds MV \fBvirtual\fR memory
|
||
.ds NT \fBNote\fR:
|
||
.ds PU CPU
|
||
.ds Pu cpu
|
||
.ds SA summary area
|
||
.ds TA task area
|
||
.ds TD task display
|
||
.ds TW task window
|
||
\# - xref's that depend on commands or topic names
|
||
.ds XC See the
|
||
.ds Xc see the
|
||
.ds XT See topic
|
||
.ds Xt see topic
|
||
.
|
||
.\" //////////////////////////////////////////////////////////////////////
|
||
.\" ----------------------------------------------------------------------
|
||
.TH TOP 1 "September 2002" "Linux" "Linux User's Manual"
|
||
.\" ----------------------------------------------------------------------
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH NAME
|
||
.\" ----------------------------------------------------------------------
|
||
top \- display Linux tasks
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH SYNOPSIS
|
||
.\" ----------------------------------------------------------------------
|
||
\*(ME \-\fBhv\fR | \-\fBbcisS\fR \-\fBd\fI delay\fR \-\fBn\fI
|
||
iterations\fR \-\fBp\fI pid\fR [,\fI pid\fR ...]
|
||
|
||
The traditional switches '-' and whitespace are optional.
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH DESCRIPTION
|
||
.\" ----------------------------------------------------------------------
|
||
The \*(ME program provides a dynamic real-time view of a running system.
|
||
It can display\fB system\fR summary information as well as a list of\fB
|
||
tasks\fR currently being managed by the Linux kernel.
|
||
The types of system summary information shown and the types, order and
|
||
size of information displayed for tasks are all user configurable and
|
||
that configuration can be made persistent across restarts.
|
||
|
||
The program provides a limited interactive interface for process\fB
|
||
manipulation\fR as well as a much more extensive interface for personal\fB
|
||
configuration\fR \*(EM encompassing every aspect of its operation.
|
||
And while \*(ME is referred to throughout this document, you are free
|
||
to name the program anything you wish.
|
||
That new name, possibly an alias, will then be reflected on \*(Me's display
|
||
and used when reading and writing a \*(CF.
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH DIFFERENCES / New Features
|
||
.\" ----------------------------------------------------------------------
|
||
With no basis for comparison, those new to \*(ME might want to skip
|
||
to the next section.
|
||
For those who have used a prior version, fasten your seat-belts
|
||
and hold on tight as we review the features of \*(US.
|
||
Details regarding their exploitation will be covered in later sections.
|
||
|
||
.\" ......................................................................
|
||
.SS Expanded Configurable Display Support
|
||
.New
|
||
In an SMP environment, screen height may be insufficient to simultaneously
|
||
accommodate all \*(Pu states plus a meaningful \*(TD.
|
||
So with \*(Us, you can alternate between a\fB summary\fR display or one
|
||
showing\fB each \*(Pu\fR separately.
|
||
No longer must this choice be irrevocably made at startup.
|
||
|
||
.New
|
||
There are new fields and with \*(Us,\fB any\fR field is selectable for sorting.
|
||
Plus, your sorted column can be\fB instantly reversed\fR with just a
|
||
single keystroke.
|
||
|
||
.New
|
||
You may optionally apply 2 distinct types of\fB highlighting\fR to
|
||
running\fB tasks\fR and/or\fB sorted columns\fR.
|
||
With \*(Us, you'll be able to instantly spot running tasks and always
|
||
know the current sort field.
|
||
|
||
.New
|
||
While you could continue to use the more familiar (and boring)\fB
|
||
monochrome display\fR, you might want to try \*(Us's new\fB color display\fR.
|
||
You can even create your own\fB unique colors\fR used in\fI summaries\fR,\fI
|
||
messages\fR,\fI headings\fR and\fI tasks\fR, each of which can be made\fB
|
||
persistent\fR until you choose to change them.
|
||
|
||
.New
|
||
Up to\fB four separate windows\fR can be displayed simultaneously,
|
||
giving you four separate ways to\fB sort\fI and\fB view\fR the tasks
|
||
currently cluttering up your system.
|
||
You could have one view by\fB pids\fR, another by\fB \*(Pu usage\fR, yet another
|
||
showing\fB memory consumption\fR.
|
||
You get the idea...
|
||
|
||
Each window comes with pre-configured (but user configurable)\fB fields\fR
|
||
and you can\fB size\fR each window individually.
|
||
|
||
Virtually every one of \*(Us's options (summaries, fields, colors, sorted column,
|
||
etc.) is\fB separately configurable\fR for each of those four windows.
|
||
|
||
Heck, you can even\fB change\fR a window's name, if you don't care for
|
||
\*(Me's choices.
|
||
Your changes will be reflected not only when you're in what \*(Me calls\fB
|
||
\*(AM\fR but also on his special new 'Windows' help screen.
|
||
|
||
And, [ ** Drum-Roll + Ta-Da ** ] with just one keystroke you can
|
||
quickly\fB switch\fR between full-screen and multiple window modes!
|
||
Or, with a different keystroke, toggle a single window \*F for now,
|
||
then \*O again later!!
|
||
|
||
.ce 2
|
||
( come on, NONE of that's really TRUE, is it? )
|
||
( ** you betcha' it is, AND there's MORE ! ** )
|
||
|
||
.\" ......................................................................
|
||
.SS Enhanced Field/Column Management
|
||
.New
|
||
Many Field/Column names have been changed to make them more intuitive,
|
||
more self-descriptive.
|
||
And with \*(Us you won't be fooled with field choices that are "not yet
|
||
implemented".
|
||
|
||
.New
|
||
Task memory statistics are more meaningful\fI and\fR more accurate\fR.
|
||
|
||
.New
|
||
You'll finally have complete\fB display integrity\fR regardless of field
|
||
selections, their order or screen width.
|
||
And\fB that\fR means the\fI command\fR column no longer need be kept as the
|
||
right-most field, lest your screen turn to <bleep> when all the following
|
||
columns get misaligned.
|
||
|
||
.\" ......................................................................
|
||
.SS Customization Flexibility
|
||
.New
|
||
.I All\fR of your configuration choices can be\fB preserved\fR in a
|
||
personal \*(CF, including any changes made on a per-window basis.
|
||
Thus, once you personalize things they\fB remain personalized\fR until
|
||
you decide to change them again.
|
||
This \*(Me has been completely cured of:
|
||
.Rjb 2
|
||
i-cant-remember-so-please-do-that-all-over-again
|
||
( and again, and again ... )
|
||
.Rje
|
||
|
||
The bottom line is this:\ \ if you save your configuration before quitting
|
||
\*(Me, upon restart the display will appear\fB exactly\fR as you left it.
|
||
And\fB that\fR means you no longer have to keep \*(Me running
|
||
until-the-end-of-time (ok, a long time anyway), lest your customizations
|
||
go bye-bye.
|
||
|
||
.New
|
||
You have complete program\fB naming freedom\fR with no internal ties to a
|
||
specific personal \*(CF.
|
||
Symbolic links could be used to establish different \*(CFs reflecting
|
||
the different personalities of your customized "\*(Mes", under whatever
|
||
aliases you've used.
|
||
|
||
Thus, you could have an alias for running \*(Me in 'Batch mode', another for
|
||
when you work from the Linux console and maybe a third used with X-Windows.
|
||
All of that, yet still just a single binary image!
|
||
|
||
.\" ......................................................................
|
||
.SS What?\fR\ \ A\fB Stupid Tricks\fR Section??
|
||
.New
|
||
Given all the enhanced capability of \*(Us, why not have a stupid tricks
|
||
section?
|
||
|
||
Just remember, \*(Us will never judge you, just support you.
|
||
Ultimately, you'll decide when the time's right to sock-it-to-\fBm'self\fR
|
||
and actually try that stuff!
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 0. OVERVIEW, Operation and Documentation
|
||
.\" ----------------------------------------------------------------------
|
||
.Scr
|
||
When you start \*(Us for the first time, you'll be presented with the traditional
|
||
screen elements: 1) Summary Area; 2) Message/Prompt Line; 3) Columns Header;
|
||
4) Task Area.
|
||
But even out-of-the-box, there are numerous subtle differences, compared to
|
||
the former top.
|
||
|
||
.SS Highlighting
|
||
.I Summary_Area\fR:
|
||
It's retina-friendly with\fB no\fR highlighting for load/uptime and
|
||
only\fB values\fR highlighted for other elements.
|
||
|
||
.I Task_Area\fR:
|
||
Tasks\fB running\fR (or ready to run) will be highlighted, and bold is
|
||
only one way of emphasizing such processes.
|
||
|
||
.SS Content/Labels
|
||
.I Summary_Area\fR:
|
||
The program\fB name\fR is shown (symlinks/aliases, remember?).
|
||
The Cpu\fI(s)\fR state\fR\fB label\fR hints at other possibilities (smp folks,
|
||
stand by).
|
||
The\fB memory\fR stats use a lower case '\fBk\fR' (making numbers and letters
|
||
more distinct).
|
||
|
||
.I Columns_Header\fR:
|
||
Shows a\fB new\fR field and some\fB changed\fR labels (unseen to the right).
|
||
Precious horizontal space is no longer squandered.
|
||
|
||
.Scr
|
||
All of that, however, is just the tip of the old iceberg.
|
||
So please, do not touch that dial!
|
||
You may, however, peruse the following screen representation before we
|
||
acknowledge \*(Us's default settings and the topics which follow
|
||
in this document...
|
||
|
||
.Img
|
||
+\fB--------------------------------------\fR+
|
||
1.\fB Summary Area .\fBl\fR |top - 15:37:33 up 16:16, 9 users, lo:
|
||
via 4 toggles .\fBt\fR |Tasks: \fB 73\fR total, \fB 3\fR running, \fB 70\fR sle:
|
||
l, t, 1, m .\fB1\fR |Cpu(s): \fB 6.6%\fR user, \fB 2.3%\fR system, :\fB
|
||
------------> .\fBm\fR |Mem: \fB 126588k\fR total, \fB 116504k\fR used,:
|
||
" |Swap: \fB 265032k\fR total, \fB 8232k\fR used,:
|
||
2.\fB Msg/Pmt line --->\fR |______________________________________:
|
||
3.\fB Columns Header ->\fR |\fI__PID_USER______PR__NI_%CPU____TIME+__\fR:
|
||
4.\fB Task Area ------>\fR |\fB 7328 root 10 0 0.6 0:00.09\fR :
|
||
via a bunch of > | 7326 root 9 0 0.0 0:00.06 :
|
||
commands and > | 7324 root 8 0 0.0 0:00.00 :
|
||
toggles ! > | 7321 root 9 0 0.0 0:00.05 :
|
||
... | 7320 root 9 0 0.0 0:00.00 :
|
||
| 7316 jfvwm 8 0 0.0 0:00.00 :
|
||
( top provides\fI four\fR )| 7315 jfvwm 9 0 0.0 0:00.01 :
|
||
( \fIseparate\fR fld grps )| 7312 root 9 0 0.0 0:00.00 :
|
||
( or windows &\fB each\fR )| 6725 root 9 0 0.0 0:00.03 :
|
||
( could be shown in )| 6232 root 7 -10 1.9 4:25.86 :
|
||
( this way, or show )| 5561 root 9 0 0.0 0:00.33 :
|
||
(\fB all concurrently\fR! )| 5560 xfs 9 0 0.0 0:00.01 :
|
||
| 5325 root 9 0 0.0 0:00.05 :
|
||
( will\fI change\fR often )| 4634 root 9 0 0.0 0:04.23 :
|
||
-*-\fBRow hilites-->\fR |\fB 1803 jgnome 9 0 0.0 1:55.30\fR :
|
||
( depending on your )| 1708 root 9 0 0.0 0:00.27 :
|
||
( \fIdelay time\fR value! )| 1703 lp 9 0 0.0 0:00.03 :
|
||
+\fB--------------------------------------\fR+
|
||
.Rje
|
||
|
||
.Scr
|
||
Within the following categories, \*(Us's startup defaults are documented
|
||
assuming no \*(CF, thus no user customizations.
|
||
However, items shown with an \*(AS could be overridden through the\fB
|
||
command line\fR \*(EM a subject soon to be dealt with.
|
||
|
||
\fIGlobal_defaults\fR
|
||
'A' - Alt display \fBOff\fR (full-screen)
|
||
* 'd' - Delay time 3.0 seconds
|
||
'I' - Irix mode On\ \ (no, 'solaris' smp)
|
||
* 'p' - PID monitoring \fBOff\fR
|
||
* 's' - Secure mode \fBOff\fR (unsecured)
|
||
\fISummary_Area_defaults\fR
|
||
'l' - Load Avg/Uptime On\ \ (thus program name)
|
||
't' - Task/Cpu state On\ \ (1+1 lines, see '1')
|
||
'm' - Mem/Swap stats On\ \ (2 lines worth)
|
||
'1' - Single Cpu On\ \ (thus 1 line if smp)
|
||
\fITask_Area_defaults\fR
|
||
'b' - Bold hilite On\ \ (not 'reverse')
|
||
* 'c' - Command line \fBOff\fR (name, not cmdline)
|
||
* 'i' - Idle tasks On\ \ (show all tasks)
|
||
'R' - Reverse sort On\ \ (sort pids high-to-low)
|
||
* 'S' - Cumulative time \fBOff\fR (exclude dead children)
|
||
'x' - Column hilite \fBOff\fR\ (no, sort field)
|
||
'y' - Row hilite On\ \ (yes, running tasks)
|
||
'z' - color/mono \fBOff\fR\ (no, colors)
|
||
|
||
Listed below are the remaining topics in this document.
|
||
Be advised that none of these topics need be read now, or studied later,
|
||
for a successful\fB close-encounter-of-the-1st-kind\fR with \*(Us.
|
||
|
||
You need remember just the\fB help key\fR ('h' or '?') to survive
|
||
\*(EM nay, prosper!
|
||
What about quitting, you ask?
|
||
Well, of course there's the 'q' \*(CI, but then \*(Me does quite well
|
||
with\fB signals\fR.
|
||
So just zap him with the traditional \fI^C\fR when you're done.
|
||
.br
|
||
Oh, almost forgot...
|
||
|
||
You could use \*(Me's own '\fBk\fR' command, to sock-it-to-\fBhisself\fR.
|
||
.Rjb 4
|
||
( He actually ENJOYS that one, really! )
|
||
( He sees SUICIDE as a chance to rest; )
|
||
( confronted-with-death, top'll LAUGH! )
|
||
|
||
( ooh, should 'k' be in stupid tricks? )
|
||
.Rje
|
||
|
||
Remaining Table of Contents
|
||
1.\fB COMMAND\-LINE Options\fR
|
||
2.\fB FIELDS / Columns\fR
|
||
a. DESCRIPTIONS of Fields
|
||
b. SELECTING and ORDERING Columns
|
||
3.\fB INTERACTIVE Commands\fR
|
||
a. GLOBAL Commands
|
||
b. SUMMARY Area Commands
|
||
c. TASK Area Commands
|
||
d. COLOR Mapping
|
||
4.\fB ALTERNATE\-DISPLAY Mode\fR
|
||
a. WINDOWS Overview
|
||
b. COMMANDS for Windows
|
||
c. EXAMPLES of Windows
|
||
-*- The 'A' Mode Command Toggle -*-
|
||
-*- STACKIN' & WHACKIN' Windows -*-
|
||
-*- ALL TOGETHER Now, Window(s) -*-
|
||
5.\fB FILES\fR
|
||
a. SYSTEM Configuration File
|
||
b. PERSONAL Configuration File
|
||
6.\fB STUPID TRICKS Sampler\fR
|
||
a. Kernel Magic
|
||
b. Bouncing Windows
|
||
c. The Big Bird Window
|
||
7.\fB NOTES and Rantings\fR
|
||
a. The top Binary
|
||
b. Comparing Performance
|
||
c. Cost of Stuff
|
||
d. The top Sources
|
||
-*- Rant On, and on -*-
|
||
lastly,\fB the usual\fR...
|
||
8. BUGS, 9. HISTORY Former top, 10. AUTHOR, 11. SEE ALSO
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 1. COMMAND-LINE Options
|
||
.\" ----------------------------------------------------------------------
|
||
The command-line syntax for \*(Us consists of:
|
||
|
||
\-\fBhv\fR\ |\ -\fBbcisS\fR\ \-\fBd\fI\ delay\fR\ \-\fBn\fI\ iterations\
|
||
\fR\ \-\fBp\fI\ pid\fR\ [,\fIpid\fR...]
|
||
|
||
The typically mandatory switches ('-') and even whitespace are completely
|
||
optional.
|
||
|
||
.TP 5
|
||
\-\fBb\fR :\fB Batch mode\fR operation
|
||
Starts \*(Me in 'Batch mode', which could be useful for sending output
|
||
from \*(Me to other programs or to a file.
|
||
In this mode, \*(Me will\fB not\fR accept input and runs until the iterations
|
||
limit you've set with the '-n' \*(CO or until killed.
|
||
|
||
Output is plain text suitable for any dumb terminal.
|
||
.br
|
||
( or dumb user, heh heh )
|
||
|
||
.TP 5
|
||
\-\fBc\fR :\fB Command line/Program name\fR toggle
|
||
Starts \*(Me with the last remembered '\fBc\fR' state reversed.
|
||
Thus, if \*(Me was displaying command lines, now that field will show program
|
||
names, and visa versa.
|
||
\*(XC 'c' \*(CI for additional information.
|
||
|
||
.TP 5
|
||
\-\fBd\fR :\fB Delay time\fR interval as:\ \ \fB-d ss.tt\fR (\fIseconds\fR.\fItenths\fR)
|
||
Specifies the delay between screen updates, and overrides the corresponding
|
||
value in one's personal \*(CF or the startup default.
|
||
Later this can be changed with the 'd' or 's' \*(CIs.
|
||
|
||
In all cases, however, such changes are\fI prohibited\fR if \*(Me is running
|
||
in 'Secure mode', except for root and excluding\fR the 's' \*(CO, documented
|
||
later in this section.
|
||
For additional information on 'Secure mode'
|
||
\*(Xt 5a. SYSTEM Configuration File.
|
||
|
||
Fractional seconds are honored, but a negative number is not allowed.
|
||
If you set the delay to anything less than 1 second, and you expect \*(Me
|
||
to do a proper job of it, then you really owe him a\fB scheduling boost\fR.
|
||
So please renice him using \*(Me's own 'r' \*(CI or more directly with
|
||
something like the following:
|
||
nice -n-10 top -d.1
|
||
|
||
With the ability to highlight\fB running\fR tasks, \*(Us will then produce
|
||
an amazing display.
|
||
One representing the results of the kernel's\fB previously unseen\fR
|
||
scheduling efforts.
|
||
You may be surprised.
|
||
.Rjb 2
|
||
( but try not to waste too many \*(Pu cycles )
|
||
( with such sub-second delays & refreshes! )
|
||
.Rje
|
||
|
||
.TP 5
|
||
\-\fBh\fR :\fB Help\fR
|
||
Show library version and the usage prompt, then quit.
|
||
|
||
.TP 5
|
||
\-\fBi\fR :\fB Idle Processes\fR toggle
|
||
Starts \*(Me with the last remembered '\fBi\fR' state reversed.
|
||
When this toggle is \*F, tasks that \fBare\fR idled or zombied
|
||
will\fB not\fR be displayed.
|
||
|
||
.TP 5
|
||
\-\fBn\fR :\fB Number of iterations\fR limit as:\ \ \fB -n number\fR
|
||
Specifies the maximum number of iterations, or frames, \*(Me should
|
||
produce before:
|
||
.Rjb 6
|
||
tellin'-a-user-what-he-really-thinks :1
|
||
stoppin'-4-a-beer-with-the-guys :2
|
||
quittin'-an-going-2-hawaii :3
|
||
hangin'-it-up-forever :4
|
||
rollin'-deadover :5
|
||
[1 -5-5-5-5 = huh?]
|
||
.Rje
|
||
|
||
.TP 5
|
||
\-\fBp\fR :\fB Monitor PIDs\fR as:\fB\ \ -pN1 -pN2 ...\fR\ \ or\fB\ \ -pN1, N2 [,...]
|
||
Monitor only processes with specified process IDs.
|
||
This option can be given up to 20 times, or you can provide a comma delimited
|
||
list with up to 20 pids.
|
||
For the indecisive, go ahead and co-mingle both approaches.
|
||
|
||
This is a \*(CO \fBonly\fR.
|
||
And should you wish to return to normal operation, it is not necessary
|
||
to quit and and restart \*(Us \*(EM just issue the '=' \*(CI.
|
||
|
||
.TP 5
|
||
\-\fBs\fR :\fB Secure mode\fR operation
|
||
Starts \*(Me with \fBsecure mode forced\fR, even for root.
|
||
This mode is far better controlled through the system \*(CF.
|
||
In fact, one could argue that this switch has little practical use\fB except\fR
|
||
to test the nifty\fI delayed message handling\fR \*(Us employs during bootstrap.
|
||
|
||
Oh, you wanna' see?
|
||
Test thus:\ \ \*(Me\fB d.1s\fR
|
||
.Rjb 3
|
||
( see, NO '-' & 'sp' but )
|
||
( you\fB can't change delay\fR )
|
||
( in\fI secure mode\fR, silly! )
|
||
.Rje
|
||
|
||
Don't bother trying that precise command line with your old top
|
||
\*(EM he'll completely overlook that 's' \*(CO because
|
||
he-sees-poorly-but-won't-wear-glasses.
|
||
|
||
.TP 5
|
||
\-\fBS\fR :\fB Cumulative time mode\fR toggle
|
||
Starts \*(Me with the last remembered '\fBS\fR' state reversed.
|
||
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
||
time that it\fB and\fR its dead children have used.
|
||
\*(XC 'S' \*(CI for additional information regarding this mode.
|
||
|
||
.TP 5
|
||
\-\fBv\fR :\fB Version\fR
|
||
Show library version and the usage prompt, then quit.
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 2. FIELDS / Columns
|
||
.\" ----------------------------------------------------------------------
|
||
.\" ......................................................................
|
||
.SS 2a. DESCRIPTIONS of Fields
|
||
.\" ----------------------------------------------------------------------
|
||
Listed below are \*(Us's\fB available\fR fields.
|
||
They are always associated with the letter shown, regardless of the position
|
||
you may have established for them with the 'o' (Order fields) \*(CI, reviewed
|
||
in the following topic.
|
||
|
||
Any field is selectable as the\fB sort field\fR, and you control whether they
|
||
are sorted high-to-low or low-to-high.
|
||
For additional information on sort provisions \*(Xt 3c. TASK Area Commands.
|
||
|
||
.TP 3
|
||
a:\fB PID\fR \*(EM Process Id\fR
|
||
The task's unique process ID, which periodically wraps at 32767,
|
||
though never restarting at zero.
|
||
|
||
.TP 3
|
||
b:\fB PPID\fR \*(EM Parent Process Pid\fR
|
||
The process ID of a task's parent.
|
||
|
||
.TP 3
|
||
c:\fB PGID\fR \*(EM Process Group Id\fR
|
||
The grouping of tasks which becomes part of job control.
|
||
It is used for distribution of signals and to arbitrate terminal I/O requests.
|
||
There is one process group per pipeline.
|
||
|
||
.TP 3
|
||
d:\fB UID\fR \*(EM User Id\fR
|
||
The user ID of the task's owner.
|
||
|
||
.TP 3
|
||
e:\fB USER\fR \*(EM User Name
|
||
The user name of the task's owner.
|
||
|
||
.TP 3
|
||
f:\fB GROUP\fR \*(EM Group Name
|
||
The group name of the task's owner.
|
||
|
||
.TP 3
|
||
g:\fB TTY\fR \*(EM Controlling Tty
|
||
The name of the controlling terminal.
|
||
This is usually the\fB device\fR (serial port, pty, etc.) from which the
|
||
process was started, and which it uses for input or output.
|
||
However, a task need\fI not\fR be associated with a terminal, in which case
|
||
you'll see '\fB?\fR' displayed.
|
||
|
||
.TP 3
|
||
h:\fB PR\fR \*(EM Priority
|
||
The priority of the task.
|
||
|
||
.TP 3
|
||
i:\fB NI\fR \*(EM Nice value
|
||
The nice value of the task.
|
||
A\fI negative\fR nice value means\fB higher priority\fR, whereas a\fI
|
||
positive\fR nice value means\fB lower priority\fR.
|
||
Zero in this field simply means priority will not be adjusted in determining a
|
||
task's dispatchability.
|
||
|
||
.TP 3
|
||
j:\fB #C\fR \*(EM Last used \*(PU (SMP)
|
||
A number representing the last used processor.
|
||
In a true SMP environment this will likely change frequently since the kernel
|
||
intentionally uses weak affinity.
|
||
Also, the very act of running \*(Me may break this weak affinity and cause more
|
||
processes to change \*(PUs more often (because of the extra demand for
|
||
\*(Pu time).
|
||
|
||
.TP 3
|
||
k:\fB %CPU\fR \*(EM \*(PU usage
|
||
The task's share of the elapsed \*(PU time since the last screen update, expressed
|
||
as a percentage of total \*(PU time.
|
||
In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
|
||
\'Solaris mode' where a task's \*(Pu usage will be divided by the total
|
||
number of \*(PUs.
|
||
You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
|
||
|
||
.TP 3
|
||
l:\fB TIME\fR \*(EM \*(PU Time
|
||
Total \*(PU time the task has used since it started.
|
||
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
||
time that\fB it\fR and its\fB dead children\fR has used.
|
||
You toggle 'Cumulative mode' with 'S', which is a \*(CO and an \*(CI.
|
||
|
||
.TP 3
|
||
m:\fB TIME+\fR \*(EM \*(PU Time, hundredths
|
||
The same as 'TIME', but reflecting more granularity through hundredths of
|
||
a second.
|
||
|
||
.TP 3
|
||
n:\fB %MEM\fR \*(EM Memory usage (RES)
|
||
A task's currently used share of available \*(MP.
|
||
|
||
.TP 3
|
||
o:\fB VIRT\fR \*(EM Virtual Image (kb)
|
||
The total amount of \*(MV used by the task.
|
||
It includes all code, data and shared libraries plus pages that have been
|
||
swapped out.
|
||
|
||
VIRT = SWAP + RES.
|
||
|
||
.TP 3
|
||
p:\fB SWAP\fR \*(EM Swapped size (kb)
|
||
The swapped out portion of a task's total \*(MV image.
|
||
|
||
.TP 3
|
||
q:\fB RES\fR \*(EM Resident size (kb)
|
||
The non-swapped \*(MP a task has used.
|
||
|
||
RES = CODE + DATA.
|
||
|
||
.TP 3
|
||
r:\fB CODE\fR \*(EM Code size (kb)
|
||
The amount of \*(MP devoted to executable code, also known as
|
||
the 'text resident set' size or TRS.
|
||
|
||
.TP 3
|
||
s:\fB DATA\fR \*(EM Data+Stack size (kb)
|
||
The amount of \*(MP devoted to other than executable code, also known as
|
||
the 'data resident set' size or DRS.
|
||
|
||
.TP 3
|
||
t:\fB SHR\fR \*(EM Shared Mem size (kb)
|
||
The amount of \*(MS used by a task.
|
||
It simply reflects memory that could be potentially shared with
|
||
other processes.
|
||
It is not an assurance that such memory is actually being shared.
|
||
|
||
.TP 3
|
||
u:\fB nFLT\fR \*(EM Page Fault count
|
||
The number of\fB major\fR page faults that have occurred for a task.
|
||
A page fault occurs when a process attempts to read from or write to a virtual
|
||
page that is not currently present in its address space.
|
||
A\fB major\fR page fault is when\fI disk access\fR is involved in making that
|
||
page available.
|
||
|
||
.TP 3
|
||
v:\fB nDRT\fR \*(EM Dirty Pages count
|
||
The number of pages that have been\fB modified\fR since they were last
|
||
written to disk.
|
||
Dirty pages must be written to disk before the corresponding physical memory
|
||
location can be used for some other virtual page.
|
||
|
||
.TP 3
|
||
w:\fB S\fR \*(EM Process Status
|
||
The status of the task which can be one of:
|
||
'\fBD\fR' = uninterruptible sleep
|
||
'\fBR\fR' = running
|
||
'\fBS\fR' = sleeping
|
||
'\fBT\fR' = traced or stopped
|
||
'\fBZ\fR' = zombies
|
||
|
||
Tasks shown as running should be more properly thought of as 'ready to run'
|
||
\*(EM their task_struct is simply represented on Linux's run-queue.
|
||
Even without a true SMP machine you may see numerous tasks in this state,
|
||
depending on \*(Me's delay interval and nice value.
|
||
|
||
.TP 3
|
||
x:\fB Command\fR \*(EM Command\fB line\fR or Program\fB name\fR
|
||
Display the command line used to start a task or the name of the associated
|
||
program.
|
||
You toggle between command\fI line\fR and\fI name\fR with 'c', which is both
|
||
a \*(CO and an \*(CI.
|
||
|
||
When you've chosen to display command\fB lines\fR, processes without a command
|
||
line (kernel threads) will be shown with only the program name in parentheses,
|
||
as in this example:
|
||
\fR( mdrecoveryd )
|
||
|
||
Either form of display is subject to potential truncation if it's too long to
|
||
fit in this field's\fI current width\fR.
|
||
That width depends upon other fields selected, their order and the current
|
||
screen width.
|
||
|
||
.in +4
|
||
\*(NT The 'Command' field/column is\fB unique\fR, in that \fRit is not
|
||
fixed-width, like all other fields.
|
||
When displayed, this column will be allocated \fBall remaining screen width\fR
|
||
to provide for the potential growth of program names into command lines!
|
||
.in
|
||
|
||
.TP 3
|
||
y:\fB WCHAN\fR \*(EM Sleeping in Function
|
||
Depending on the availability of the kernel link map ('System.map'),
|
||
this field will show the \fB name\fR or the\fB address\fR of the kernel
|
||
function in which the task is currently sleeping.
|
||
Running tasks will display a dash ('-') in this column (but only if you're
|
||
using the best, the most proper libproc).
|
||
|
||
.in +4
|
||
\*(NT By displaying this field, \*(Me's own working set will be increased by
|
||
over 700Kb.
|
||
Your only means of reducing that overhead will be to stop and restart \*(Me.
|
||
.in
|
||
|
||
.TP 3
|
||
z:\fB Flags\fR \*(EM Task Flags
|
||
This column represents the task's current scheduling flags which \*(Us
|
||
expresses in hexadecimal notation, but with zeros suppressed.
|
||
These flags are officially documented in <linux/sched.h>.
|
||
Less formal documentation can also be found on the 'Fields select'
|
||
and 'Order fields' screens \*(EM the next topic.
|
||
|
||
.\" ......................................................................
|
||
.SS 2b. SELECTING and ORDERING Columns
|
||
.\" ----------------------------------------------------------------------
|
||
After pressing the \*(CIs 'f' (Fields select) or \'o' (Order fields) you will
|
||
be shown a screen containing the current \fBfields string\fR followed by names
|
||
and descriptions for all fields.
|
||
|
||
Here is a sample\fB fields string\fR from one of \*(Us's four windows/field
|
||
groups and an explanation of the conventions used:
|
||
.Jbu
|
||
Sample fields string:
|
||
\fIANOPQRSTUVXbcdefgjlmyzWHIK\fR
|
||
.Jbu
|
||
The order of displayed fields corresponds to the order of the letters
|
||
in that string.
|
||
.Jbu
|
||
If the letter is\fI upper case\fR the corresponding field itself will
|
||
then be\fB shown\fR as part of the \*(TD (screen width permitting).
|
||
This will also be indicated by a leading \*(AS, as in this excerpt:
|
||
\fR...
|
||
\fB* K: %CPU = CPU usage
|
||
\fR l: TIME = CPU Time
|
||
\fR m: TIME+ = CPU Time, hundredths
|
||
\fB* N: %MEM = Memory usage (RES)
|
||
\fB* O: VIRT = Virtual Image (kb)
|
||
\fR...
|
||
|
||
.TP
|
||
.B Fields select\fR screen \*(EM the 'f' \*(CI
|
||
You\fI toggle\fR the\fB display\fR of a field by simply pressing the
|
||
corresponding letter.
|
||
|
||
.TP
|
||
.B Order fields\fR screen \*(EM the 'o' \*(CI
|
||
You\fI move\fR a field to the\fB left\fR by pressing the corresponding\fB
|
||
upper case\fR letter and to the\fB right\fR with the\fB lower case\fR
|
||
letter.
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 3. INTERACTIVE Commands
|
||
.\" ----------------------------------------------------------------------
|
||
Listed below is a brief index of commands within categories.
|
||
Some commands appear more than once \*(EM their meaning or scope may vary
|
||
depending on the context in which they are issued.
|
||
|
||
3a.\fI GLOBAL_Commands\fR
|
||
<Ret>, <Sp> ?, =, A, d, G, h, I, k, q, r, s, W, Z
|
||
3b.\fI SUMMARY_Area_Commands\fR
|
||
l, m, t, 1
|
||
3c.\fI TASK_Area_Commands\fR
|
||
Appearance: b, x, y, z
|
||
Content: c, f, o, S, u
|
||
Size: #, i, n
|
||
Sorting: <, >, F, O, R
|
||
3d.\fI COLOR_Mapping\fR
|
||
<Ret>, a, b, H, M, q, S, T, w, z, 0 - 7
|
||
4b.\fI COMMANDS_for_Windows\fR
|
||
-, _, =, +, A, a, G, g, w
|
||
|
||
.\" ......................................................................
|
||
.SS 3a. GLOBAL Commands
|
||
The global \*(CIs are\fB always\fR available\fR in both \*(FM and \*(AM.
|
||
However, some of these \*(CIs are\fB not available\fR when running
|
||
in 'Secure mode'.
|
||
|
||
If you wish to know in advance whether or not your \*(Me has been secured,
|
||
simply ask for help and view the system summary on the second line.
|
||
|
||
.TP 7
|
||
\ \ \<\fBEnter\fR> or <\fBSpace\fR> :\fIRefresh_Display\fR
|
||
In truth, these commands do nothing, they are simply ignored.
|
||
However, they will awaken \*(Me and following receipt of any input
|
||
the entire display will be repainted within milliseconds.
|
||
|
||
If you have set a large delay interval and wish to see current status,
|
||
just use either of these keys.
|
||
|
||
.TP 7
|
||
\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
|
||
There are\fB two help levels\fR available.
|
||
|
||
The first will provide a reminder of all the basic \*(CIs.
|
||
If \*(Me is\fI secured\fR, that screen will be abbreviated.
|
||
|
||
Typing 'h' or '?' on that help screen will take you to help for those \*(CIs
|
||
applicable to \*(AM.
|
||
|
||
.TP 7
|
||
\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
|
||
Removes restrictions on which tasks are shown.
|
||
This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
|
||
that might be active.
|
||
It also provides for an 'exit' from PID monitoring.
|
||
See the '-p' \*(CO for a discussion of PID monitoring.
|
||
|
||
When operating in \*(AM this command has a slightly broader meaning.
|
||
|
||
.TP 7
|
||
\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
|
||
This command will switch between \*(FM and \*(AM.
|
||
\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
|
||
\*(CWs and field groups.
|
||
|
||
.TP 7
|
||
*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
|
||
You will be prompted to enter the delay time, in seconds, between
|
||
display updates.
|
||
|
||
Fractional seconds are honored, but a negative number is not allowed.
|
||
If you set the delay to anything less than 1 second, and you expect \*(Me
|
||
to do a proper job of it, then you really owe him a\fB scheduling boost\fR.
|
||
So please renice him using \*(Me's own 'r' \*(CI.
|
||
|
||
Entering 0 causes (nearly) continuous updates, with an unsatisfactory
|
||
display as the system and tty driver try to keep up with \*(Me's demands.
|
||
The delay value is inversely proportional to system loading,
|
||
so set it with care.
|
||
|
||
If at any time you wish to know the current delay time, simply ask for help
|
||
and view the system summary on the second line.
|
||
|
||
.TP 7
|
||
\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
|
||
You will be prompted to enter a number between 1 and 4 designating the
|
||
window/field group which should be made the \*(CW.
|
||
You will soon grow comfortable with these 4 windows, especially after
|
||
experimenting with \*(AM.
|
||
|
||
.TP 7
|
||
\ \ \'\fBI\fR\' :\fIIrix/Solaris_Mode_toggle\fR
|
||
When operating in 'Solaris mode' ('I' toggled \*F), a task's \*(Pu usage
|
||
will be divided by the total number of \*(PUs.
|
||
After issuing this command, you'll be informed of the new state of this toggle.
|
||
|
||
.TP 7
|
||
*\ \'\fBk\fR\' :\fIKill_a_task\fR
|
||
You will be prompted for a PID and then the signal to send.
|
||
The default signal, as reflected in the prompt, is SIGTERM.
|
||
However, you can send any signal, via number or name.
|
||
|
||
If you wish to\fI abort\fR the kill process, do one of the following
|
||
depending on your progress:
|
||
1) at the\fB pid\fR prompt, just press <Enter>
|
||
2) at the\fB signal\fR prompt, type 0
|
||
|
||
.TP 7
|
||
\ \ \'\fBq\fR\' :\fIQuit\fR
|
||
|
||
.TP 7
|
||
*\ \'\fBr\fR\' :\fIRenice_a_Task\fR
|
||
You will be prompted for a PID and then the value to nice it to.
|
||
Entering a positive value will cause a process to lose priority.
|
||
Conversely, a negative value will cause a process to be viewed more
|
||
favorably by the kernel.
|
||
|
||
.TP 7
|
||
\ \ \'\fBW\fR\' :\fIWrite_the_Configuration_File\fR
|
||
This will save all of your options and toggles plus the current
|
||
display mode and delay time.
|
||
By issuing this command just before quitting \*(Me, you will be able restart
|
||
later in\fB exactly\fR that same state.
|
||
|
||
.TP 7
|
||
\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
|
||
This key will take you to a separate screen where you can change the
|
||
colors for the \*(CW, or for all windows.
|
||
For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
|
||
|
||
.IP "*" 3
|
||
The commands shown with an \*(AS are\fB not available\fR in 'Secure mode',
|
||
nor will they be shown on the level-1 help screen.
|
||
|
||
.\" ......................................................................
|
||
.SS 3b. SUMMARY Area Commands
|
||
The \*(SA \*(CIs are\fB always available\fR in both \*(FM and \*(AM.
|
||
They affect the beginning lines of your display and will determine the position
|
||
of messages and prompts.
|
||
|
||
These commands always impact just the \*(CW/field group.
|
||
\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
|
||
\*(CWs and field groups.
|
||
|
||
.TP 7
|
||
\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
|
||
This is also the line containing the program name (possibly an alias) when
|
||
operating in \*(FM or the \*(CW name when operating in \*(AM.
|
||
|
||
If you murder-this-line, \*(Me will prosecute you.
|
||
Later, get-out-of-jail by turning it back on.
|
||
|
||
.TP 7
|
||
\ \ \'\fBm\fR\' :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
|
||
This command affects two \*(SA lines.
|
||
|
||
.TP 7
|
||
\ \ \'\fBt\fR\' :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
|
||
This command affects from 2 to many \*(SA lines, depending on the state
|
||
of the '1' toggle and whether or not \*(Me is running under true SMP.
|
||
|
||
.TP 7
|
||
\ \ \'\fB1\fR\' :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
|
||
This command affects how the 't' command's Cpu States portion is shown.
|
||
Although this toggle exists primarily to serve massively-parallel SMP machines,
|
||
it is not restricted to solely SMP environments.
|
||
|
||
When you see 'Cpu(s):' in the \*(SA, the '1' toggle is \*O and all
|
||
\*(Pu information is gathered in a single line.
|
||
Otherwise, each \*(Pu is displayed separately as: 'Cpu0, Cpu1, ...'
|
||
|
||
.in +4
|
||
\*(NT If you receive a fatal error message in response to this command, your
|
||
version of the kernel does not provide separate \*(Pu data in '/proc/stat'.
|
||
You can either avoid issuing this command or recompile \*(Me with the
|
||
appropriate #define enabled so the command will be restricted to SMP.
|
||
.in
|
||
|
||
.PP
|
||
If the\fB entire\fR \*(SA has been toggled \*F for any window,
|
||
you would be left with just the\fB message line\fR.
|
||
In that way, you will have maximized available task rows but (temporarily)
|
||
sacrificed the program name in \*(FM or the \*(CW name when in \*(AM.
|
||
|
||
.\" ......................................................................
|
||
.SS 3c. TASK Area Commands
|
||
The \*(TA \*(CIs are\fB always\fR available in \*(FM.
|
||
|
||
The \*(TA \*(CIs are\fB never available\fR in \*(AM\fI if\fR the \*(CW's
|
||
\*(TD has been toggled \*F (\*(Xt 4. ALTERNATE\-DISPLAY Mode).
|
||
|
||
.PP
|
||
.\" .........................
|
||
.B APPEARANCE\fR of \*(TW
|
||
.PD 0
|
||
.TP 7
|
||
\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
|
||
This command will impact how the 'x' and 'y' toggles are displayed.
|
||
Further, it will only be available when at least one of those toggles is \*O.
|
||
|
||
.TP 7
|
||
\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
|
||
You probably don't need a constant visual reminder of your chosen sort
|
||
field and \*(Us hopes that you always run with 'column highlight' \*F,
|
||
due to the cost in path-length.
|
||
However, if you forget which field \*(Me is sorting this command can serve
|
||
as a quick visual reminder.
|
||
|
||
.TP 7
|
||
\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
|
||
Please use this toggle \*(EM highlight running tasks!
|
||
It's an important insight into your system's health and it was largely this
|
||
provision that was responsible for your-brand-new-top.
|
||
You'll make the program author a happy guy.
|
||
|
||
.TP 7
|
||
\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
|
||
Switches the \*(CW between your last used color scheme and the older form
|
||
of black-on-white or white-on-black.
|
||
This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
|
||
state of the 'x', 'y' or 'b' toggles.
|
||
|
||
.PP
|
||
.\" .........................
|
||
.B CONTENT\fR of \*(TW
|
||
.PD 0
|
||
.TP 7
|
||
\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
|
||
This command will be honored whether or not the 'Command' column
|
||
is\fB currently visible\fR.
|
||
Later, should that field come into view, the change you applied will be seen.
|
||
|
||
.TP 7
|
||
\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
|
||
These keys display separate screens where you can change which
|
||
fields are displayed and their order.
|
||
For additional information on these \*(CIs
|
||
\*(Xt 2b. SELECTING and ORDERING Columns.
|
||
|
||
.TP 7
|
||
\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
|
||
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
||
time that it\fB and\fR its dead children\fR have used.
|
||
|
||
When \*F, programs that fork into many separate tasks will appear
|
||
less demanding.
|
||
For programs like 'init' or a shell this is appropriate but for others,
|
||
like compilers, perhaps not.
|
||
Experiment with two \*(TWs sharing the same sort field but with different 'S'
|
||
states and see which representation you prefer.
|
||
|
||
After issuing this command, you'll be informed of the new state of this toggle.
|
||
If you wish to know in advance whether or not 'Cumulative mode' is in
|
||
effect, simply ask for help and view the window summary on the second line.
|
||
|
||
.TP 7
|
||
\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
|
||
You will be prompted to enter the name of the user to display.
|
||
Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
|
||
no tasks will be shown.
|
||
|
||
Later, if you wish to monitor all tasks again, re-issue this command but
|
||
just press <Enter> at the prompt, without providing a name.
|
||
|
||
.PP
|
||
.\" .........................
|
||
.B SIZE\fR of \*(TW
|
||
.PD 0
|
||
.TP 7
|
||
\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
|
||
Displays all tasks or just active tasks.
|
||
When this toggle is \*F, idled or zombied processes will\fB not\fR
|
||
be displayed.
|
||
|
||
If this command is applied to the last \*(TD when in \*(AM, then it will not
|
||
affect the window's size, as all prior \*(TDs will have already been painted.
|
||
|
||
.TP 7
|
||
\ \ \'\fBn\fR\' or \'#\' :\fISet_Maximum_Tasks\fR
|
||
You will be prompted to enter the number of tasks to display.
|
||
The lessor of your number and available screen rows will be used.
|
||
|
||
This is the command that, when used in \*(AM, gives you precise control
|
||
over the size of each currently visible \*(TD.
|
||
|
||
.PP
|
||
.\" .........................
|
||
.B SORTING\fR of \*(TW
|
||
.br
|
||
.in +2
|
||
Before using any of these sort provisions, \*(Me suggests that you
|
||
temporarily turn on column highlighting using the '\fBx\fR' \*(CI.
|
||
That will help ensure that the actual sort environment matches your intent.
|
||
|
||
The following \*(CIs will\fB only\fR be honored when the
|
||
current sort field is\fB visible\fR.
|
||
The sort field might\fI not\fR be visible because:
|
||
1) there is insufficient\fI Screen Width\fR
|
||
2) the 'f' \*(CI turned it \*F
|
||
.in
|
||
|
||
.TP 7
|
||
\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
|
||
Moves the sort column to the left unless the current sort field is
|
||
the first field being displayed.
|
||
|
||
.TP 7
|
||
\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
|
||
Moves the sort column to the right unless the current sort field is
|
||
the last field being displayed.
|
||
|
||
.PP
|
||
.in +2
|
||
The following \*(CIs will\fB always\fR be honored whether or not
|
||
the current sort field is visible.
|
||
.in
|
||
|
||
.TP 7
|
||
\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
|
||
These keys display a separate screen where you can change which field
|
||
is used as the sort column.
|
||
|
||
If a field is selected which was not previously being displayed, it will
|
||
be forced \*O when you return to the \*(Me display.
|
||
However, depending upon your screen width and the order of your fields,
|
||
this sort field may not be displayable.
|
||
|
||
This \*(CI can be a convienent way to simply verify the current sort field,
|
||
when running \*(Me with column highlighting turned \*F.
|
||
|
||
.TP 7
|
||
\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
|
||
Internally to \*(Me, 'normal' is 'reverse'.
|
||
.Rjb 1
|
||
...\fBsay what\fR?
|
||
.Rje
|
||
Without 'R', \*(Me will sort fields high-to-low.
|
||
.Rjb 1
|
||
...that's\fI reverse\fR, \*(Me's\fI normal\fR mode!
|
||
.Rje
|
||
|
||
Try this:\ \ using 'R' you can\fI alternate\fR between high-to-low
|
||
and low-to-high sorts.
|
||
Lose no sleep over 'reverse' and 'normal', ok?
|
||
|
||
.PP
|
||
.in +2
|
||
\*(NT Field sorting uses internal values, not those in column display.
|
||
Thus, the TTY and WCHAN fields will violate strict ASCII collating sequence.
|
||
.in
|
||
|
||
.\" ......................................................................
|
||
.SS 3d. COLOR Mapping
|
||
.Scr
|
||
When you issue the 'Z' \*(CI, you are presented with the following screen.
|
||
On that screen, separate commands (though sometimes related) are in effect.
|
||
|
||
This screen can be used to change the colors in just the \*(CW or
|
||
in\fB all\fR four windows before returning to the \*(Me display.
|
||
|
||
.P
|
||
.B Available \*(CIs
|
||
\fB4\fR upper case letters to select a\fB target\fR
|
||
\fB8\fR numbers to select a\fB color\fR
|
||
normal toggles available\fR
|
||
'b' :bold/reverse
|
||
'z' :color/mono
|
||
other commands available\fR
|
||
'a'/'w' :apply, then go to next/prior
|
||
<Enter> :apply and exit
|
||
'q' :abandon current changes and exit
|
||
|
||
.Img
|
||
+\fB--------------------------------------\fR+
|
||
this shows you the |\fBHelp for color mapping\fR - procps versio:\fB
|
||
Target Window ----->\fR |current window:\fB 1:Def\fR :
|
||
-*- | :
|
||
a\fB Sample Screen\fR with | color - 04:25:44 up 8 days, 50 min,:
|
||
\fIyour_current_results\fR | Tasks: \fB 64\fR total, \fB 2\fR running, \fB 62\fR :
|
||
\'\fBS\fR' color \fB ---->\fR | State cpu0 : \fB 76.5%\fR user, \fB 11.2%\fR s:
|
||
\'\fBM\fR' color\fIs \fB ---->\fR | \fB _Nasty_Message!___-or-__Input_Promp\fR:
|
||
\'\fBH\fR' color \fB ---->\fR | \fI __PID_TTY_____PR__NI_%CPU____TIME+_\fR:
|
||
\'\fBT\fR' color \fB ---->\fR | 17284\fB pts/2\fR 8 0 0.0 0:00.75:
|
||
+ a\fB row\fR for '\fBb\fR'\fB--->\fR | \fB 8601\fB pts/1 7 -10 0.4 0:00.03\fR:
|
||
-*- | 11005\fB ? \fR 9 0 0.0 0:02.50:
|
||
addt'l toggles \fB---->\fR | available toggles:\fB b\fR =bold/reverse(:
|
||
\'\fBb\fR'(bold), '\fBz\fR'(mono) | :
|
||
|Select\fB target\fR as upper case letter: :
|
||
instructions for the | \fB S\fR = Summary Data, \fB M\fR = Messages/Pro:
|
||
target (4) | \fB H\fR = Column Heads, \fB T\fR = Task Informa:
|
||
|Select\fB color\fR as number: :
|
||
instructions for the | \fB 0\fR = black, \fB 1\fR = red, \fB 2\fR = green:
|
||
colors (8) | \fB 4\fR = blue, \fB 5\fR = magenta, \fB 6\fR = cyan,:
|
||
| :
|
||
-*- -*- -*- |Selected:\fB target T\fR ;\fB color 1\fR :
|
||
current\fB target\fR | press 'q' to abort changes to windo:
|
||
current\fB color\fR | press 'a' or 'w' to commit & change:
|
||
-*- -*- -*- | :
|
||
+\fB--------------------------------------\fR+
|
||
.Rje
|
||
|
||
.in +4
|
||
\*(NT If your use 'a' or 'w' to cycle the targeted window, you\fI will
|
||
have applied\fR the color scheme that was displayed when you left that window.
|
||
You can, of course, easily return to any window and reapply different
|
||
colors or turn colors \*F completely with the 'z' toggle.
|
||
.in
|
||
|
||
The Color Mapping screen can also be used to change the \*(CW/field group
|
||
in either \*(FM or \*(AM.
|
||
Whatever was targeted when 'q' or <Enter> was pressed\fI will\fR be
|
||
made\fB current\fR as you return to the \*(Me display.
|
||
|
||
.Zzz
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 4. ALTERNATE\-DISPLAY Mode
|
||
.\" ----------------------------------------------------------------------
|
||
.\" ......................................................................
|
||
.SS 4a. WINDOWS Overview
|
||
You must find comfort with two concepts if you are to successfully manage
|
||
windows and prosper in \*(AM.
|
||
|
||
.TP
|
||
.B Field Groups/Windows\fR:
|
||
.br
|
||
In \*(FM there is a single window represented by the entire screen.
|
||
That single window can still be\fI changed\fR to display 1 of 4 different\fB
|
||
field groups\fR (\*(Xc 'G' \*(CI, repeated below).
|
||
|
||
Each of the 4 field groups has a unique separately configurable\fB \*(SA\fR
|
||
and its own configurable\fB \*(TA\fR.
|
||
|
||
In \*(AM, those 4 underlying\fB field groups\fR can now be made\fI visible\fR
|
||
simultaneously, or can be turned \*F individually at your command.
|
||
|
||
The\fB \*(SA\fR will\fI always\fR exist, even if it's only the message line.
|
||
At any given time only\fI one\fR \*(SA can be displayed.
|
||
However, depending on your commands, there could be from\fI zero\fR
|
||
to\fI four\fR separate \*(TDs currently showing on the screen.
|
||
|
||
.TP
|
||
.B Current Window\fR:
|
||
.br
|
||
The \*(CW is the window associated with the \*(SA and the window to which
|
||
task related commands are always directed.
|
||
Since in \*(AM you can toggle the \*(TD \*F, some commands might be
|
||
restricted for the \*(CW.
|
||
|
||
A further complication arises when you have toggled the\fB entire\fR \*(SA
|
||
\*F, leaving only the\fB message line\fR visible.
|
||
With the loss of the window\fB name\fR (the 'l' toggled line), you'll not
|
||
easily know what window is the \*(CW.
|
||
|
||
.PP
|
||
You must never blame \*(Us for any potential confusion.
|
||
Someone must have misapplied some commands.
|
||
Come on, let's hear it, who ya gonna' blame, huh?
|
||
|
||
.\" ......................................................................
|
||
.SS 4b. COMMANDS for Windows
|
||
.TP 7
|
||
\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
|
||
The '-' (minus) key turns the \*(CW's \*(TD \*O and \*F.
|
||
When \*O, that \*(TA will show a minimum of the columns header you've
|
||
established with the 'f' and 'o' commands.
|
||
It will also reflect any other \*(TA options/toggles you've applied yielding
|
||
zero or more tasks.
|
||
|
||
The '_' (upper case minus) key does the same for\fB all\fR \*(TDs.
|
||
In other words, it switches between the currently visible \*(TD(s) and any
|
||
\*(TD(s) you had toggled \*F.
|
||
|
||
If all 4 \*(TDs\fB are\fR currently visible, \*(Me is betting you will find
|
||
the '_' command not terribly satisfying (inside, he'll wonder
|
||
what-kind-of-user-he's-dealing-with).
|
||
On the other hand, if all you're interested in is the system summary, \*(Me
|
||
acknowledges this is the best means to that objective (inside, he'll wonder
|
||
how-did-this-user-become-so-very-wise).
|
||
|
||
.TP 7
|
||
*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
|
||
The '=' (equals) key\fB forces\fR the \*(CW's \*(TD to be visible.
|
||
It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
|
||
be active.
|
||
|
||
The \'+' (upper case equals) key does the same for\fB all\fR windows.
|
||
The four \*(TDs will reappear, nice and even. They will also have\fB
|
||
retained\fR any customizations you had previously applied,\fI except\fR for
|
||
the 'i' (idle tasks) and 'n' (max tasks) commands.
|
||
|
||
This is the command you'll use when your screen has somehow become a mess
|
||
(hmmm, how-in-the-world-did-THAT-happen?).
|
||
|
||
.TP 7
|
||
*\ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
|
||
This command will switch between \*(FM and \*(AM.
|
||
|
||
The first time you issue this command, all four \*(TDs will be shown.
|
||
Thereafter when you switch modes, you will see only the \*(TD(s) you've
|
||
chosen to make visible.
|
||
|
||
.TP 7
|
||
*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
|
||
This will change the \*(CW, which in turn changes the window to which
|
||
commands are directed.
|
||
These keys act in a circular fashion so you can reach any desired \*(CW
|
||
using either key.
|
||
|
||
Assuming the window name is visible (you have not toggled 'l' \*F),
|
||
whenever the \*(CW name loses its emphasis/color, that's a reminder
|
||
the \*(TD is \*F and many commands will be restricted.
|
||
|
||
.TP 7
|
||
*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
|
||
You will be prompted to enter a number between 1 and 4 designating the
|
||
window/field group which should be made the \*(CW.
|
||
|
||
In \*(FM, this command is necessary to alter the \*(CW.
|
||
In \*(AM, it is simply a less convenient alternative to the 'a' and 'w'
|
||
commands.
|
||
|
||
.TP 7
|
||
\ \ \'\fBg\fR\' :\fIChange_Window/Field_Group_Name\fR
|
||
You will be prompted for a new name to be applied to the \*(CW.
|
||
It does not require that the window name be visible
|
||
(the 'l' toggle to be \*O).
|
||
|
||
.IP "*" 3
|
||
The \*(CIs shown with an \*(AS have use beyond \*(AM.
|
||
\'=', 'A', 'G' are\fB always\fR available
|
||
\'a', 'w' act the same when\fB color mapping\fR
|
||
|
||
.\" ......................................................................
|
||
.SS 4c. EXAMPLES of Windows
|
||
.Jp
|
||
.ce
|
||
.\" .........................
|
||
.SS -*- The 'A' Mode Command Toggle -*-
|
||
.Scr
|
||
Here's what you'll see when you first invoke the \*(AM \*(CI.
|
||
|
||
This particular display was produce on a VT100 xterm, with only 24 rows.
|
||
All four \*(TDs are visible, but they could not be sized the same.
|
||
Available lines are parceled out in the fairest way possible so the last
|
||
two \*(TDs have an extra line each.
|
||
|
||
Notice the \*(CW\fB name\fR in the \*(SA \*(EM it's been emphasized because
|
||
the associated \*(TD is visible.
|
||
Since 1:Def has a \*(TA, the full range of \*(CIs would be at your disposal.
|
||
But remember, many of those commands will apply only to window 1:Def.
|
||
|
||
.Img
|
||
+\fB--------------------------------------\fR+
|
||
1:Def name is bold, |\fB1:Def\fR - 15:46:37 up 16:25, 9 users, :
|
||
thus all commands |Tasks: \fB 76\fR total, \fB 1\fR running, \fB 75\fR sle:
|
||
will be available. |Cpu(s): \fB 0.7%\fR user, \fB 1.3%\fR system, :
|
||
|Mem: \fB 126588k\fR total, \fB 123688k\fR used,:
|
||
|Swap: \fB 265032k\fR total, \fB 8232k\fR used,:
|
||
|______________________________________:
|
||
Tough luck windows |\fI1__PID_USER______PR__NI_%CPU____TIME+_\fR:
|
||
#1 & 2 - you\fB lost\fR |\fB 7343 jtwm 16 0 0.9 0:00.59\fR:\fB
|
||
one line\fR each \*(EM | 7339 jtwm 9 0 0.0 0:00.02:
|
||
guess you'll just |\fI__7337_root_______9___0__0.0___0:01.30\fR:
|
||
have to learn how |\fI2__PID__PPID_Command____________TIME+_\fR:
|
||
to live with it. |\fB 997 952 kdeinit 17:59.59\fR:
|
||
| 1115 952 kdeinit 2:16.47:
|
||
|\fI__1803__1116_led_______________1:55.30\fR:
|
||
|\fI3__PID_%MEM__VIRT_SWAP__RES_CODE_DATA_\fR:
|
||
The #3 & #4 windows | 4634 12.3 15620 0 15m 860 14m :
|
||
better not gloat | 7337 11.3 14396 92 13m 36 13m :
|
||
over 1 extra line. | 923 10.6 30524 16m 13m 1120 12m :
|
||
That user could yet |\fI___991__7.2__9492__316_9176___12_9164_\fR:
|
||
sock 'em with the |\fI4_UID_USER_____GROUP____TTY________PID\fR:
|
||
'n' command and | 43 xfs xfs ? 806:
|
||
take\fI those lines\fR, | 0 ykde users pts/7 5561:\fB
|
||
plus others\fR, away! | 0 wgnome users pts/7 5560:
|
||
| 0 root root pts/7 5325:
|
||
+\fB--------------------------------------\fR+
|
||
.Rje
|
||
|
||
.Scr
|
||
So, what say we start applying some of those "full range of \*(CIs"?
|
||
|
||
Onward + Downward...
|
||
|
||
.ce
|
||
.\" .........................
|
||
.SS -*- STACKIN' & WHACKIN' Windows -*-
|
||
.Scr
|
||
Whoa, hold on mate.
|
||
Someone has already whacked these windows.
|
||
See, there are no \*(TAs for windows 1:Def and 4:Usr.
|
||
Well, we can at least retrace their steps...
|
||
|
||
Here's what was done, after issuing the '\fBA\fR' command and entering \*(AM.
|
||
\fB1\fR) When #1\fB was\fR the \*(CW, '-' was pressed,
|
||
toggling \*F the associated \*(TD
|
||
( if 'l t m'\fI had been\fR applied to its summary, too )
|
||
( then there'll be\fI only\fR a msg line when 'current' )
|
||
\fB2\fR) Then the 'w' key was struck to cycle\fB backward\fR,
|
||
making 4:Usr the \*(CW
|
||
(could have used 'a a a', if one likes to type)
|
||
\fB3\fR) Then step #1 was repeated, and bye-bye window #4
|
||
\fB4\fR) Finally, window #2 was made the \*(CW
|
||
( Q. how many keystrokes were used? )
|
||
( A. minimum of 2: 'a a' or 'w w'. )
|
||
|
||
.Img
|
||
+\fB--------------------------------------\fR+
|
||
No 'l','t','m','1' |\fB2:Top\fR - 15:48:35 up 16:27, 9 users, :
|
||
commands have been |Tasks: \fB 75\fR total, \fB 1\fR running, \fB 74\fR sle:
|
||
issued here, |Cpu(s): \fB 2.0%\fR user, \fB 0.7%\fR system, :
|
||
but... |Mem: \fB 126588k\fR total, \fB 123712k\fR used,:
|
||
|Swap: \fB 265032k\fR total, \fB 8232k\fR used,:
|
||
|______________________________________:
|
||
#2's been changed; |\fI2__PID__PPID_Command____________TIME+_\fR:
|
||
user applied a 'c' |\fB 997 952 kdeinit: konsol 18:00.70\fR:
|
||
command (when it | 1115 952 kdeinit: konsol 2:16.47:\fB
|
||
was\fR current) - now | 1803 1116 led tiptop.HELP 1:55.30:
|
||
shows cmd\fI lines\fR vs. | 923 922 X :0 1:09.60:
|
||
program names; | 973 1 klaptopdaemon 0:59.63:
|
||
still seems to be | 981 952 /usr/bin/artsd 0:48.63:
|
||
sorted on TIME+ | 987 1 kdeinit: kdeskt 0:24.34:
|
||
though |\fI___991_____1_kdeinit:_kicker___0:04.59\fR:
|
||
|\fI3__PID_%MEM__VIRT_SWAP__RES_CODE_DATA_\fR:
|
||
This #3 guy appears | 4634 12.3 15620 0 15m 860 14m :
|
||
to still be running | 7337 11.3 14396 92 13m 36 13m :
|
||
with the supplied | 923 10.6 30544 16m 13m 1120 12m :
|
||
defaults, but no | 991 7.2 9492 316 9176 12 9164 :
|
||
telling what\fI damage\fR |\fB 7329 7.0 9036 140 8896 36 8860\fR :
|
||
might have been | 1115 6.9 8956 160 8796 36 8760 :
|
||
done to it's | 987 6.4 8668 524 8144 20 8124 :\fB
|
||
summary info\fR stuff | 1131 6.4 8268 144 8124 36 8088 :
|
||
+\fB--------------------------------------\fR+
|
||
.Rje
|
||
|
||
.Scr
|
||
And that's what brought us to this current state.
|
||
No, wait.
|
||
Oh lordy, will you look at that \*(EM someone has changed the\fB name\fR of
|
||
window #2 from 'Job' to 'Top'!
|
||
|
||
How'd they do that?
|
||
Well, they just issued the 'g' \*(CI, of course.
|
||
That command is available whenever \*(AM is active and always impacts
|
||
just the \*(CW.
|
||
Gosh, you can even issue the 'g' command when 'l' has toggled \*F the
|
||
very \*(SA line containing the window name!
|
||
|
||
Almost Done...
|
||
|
||
.ce
|
||
.\" .........................
|
||
.SS -*- ALL TOGETHER Now, Window(s) -*-
|
||
.Scr
|
||
Here, the window 1:Def \*(TD has been toggled \*F but it remains the \*(CW.
|
||
Since there is no \*(TA, many commands will be restricted.
|
||
However, the commands ('l', 't', 'm', '1') affecting the \*(SA, as
|
||
well as some other global commands ('k', 'Z', etc.), would still be active.
|
||
|
||
Notice that the\fB Mem\fR and\fB Swap\fR lines are not shown.
|
||
This means that the loser (oops, user) has, in fact, issued the 'm' command!
|
||
Now, if you were to cycle the \*(CW with the 'a' or 'w' commands, the
|
||
\*(TD would remain the same (except possibly growing/shrinking slightly)
|
||
but the \*(SA would change periodically.
|
||
|
||
The comments to the left of the image provide additional insights into how
|
||
things came to be.
|
||
Note especially the comments for window 4:Usr \*(EM the one with some
|
||
empty rows...
|
||
|
||
.Img
|
||
1:Def\fI no\fR highlight, +\fB--------------------------------------\fR+
|
||
thus disabled cmds: |1:Def - 15:50:32 up 16:29, 9 users, :
|
||
b,i,n,u,x,y, etc. |Tasks: \fB 75\fR total, \fB 2\fR running, \fB 73\fR sle:
|
||
& m = lost Mem/Swap |Cpu(s): \fB 10.6%\fR user, \fB 0.0%\fR system, :
|
||
|______________________________________:
|
||
2:Job was very busy: |\fI2__PID__PPID_Command____________TIME+_\fR:
|
||
'n' cmd, w/ 7 tasks | 80 1\fB ( khubd ) \fR 0:00.00:
|
||
'c' cmd, cmd line | 6 0\fB ( kreclaimd ) \fR 0:00.00:
|
||
'O' cmd, sort cmd | 9 1\fB ( mdrecoveryd )\fR 0:00.00:
|
||
'R' cmd, sort bkwd | 11358 1\fB /bin/bash/ /usr\fR 0:00.00:
|
||
'x' cmd, hi column | 1297 1\fB /sbin/mingetty \fR 0:00.00:
|
||
(when 2\fB WAS\fR current) | 683 1\fB xinetd -stayali\fR 0:00.00:
|
||
|\fI___836_____1_\fBlogin_--_root\fI_____0:00.00\fR:
|
||
3:Mem has altered |\fI3__PID_%MEM__VIRT_SWAP__RES_CODE_DATA_\fR:
|
||
some std defaults: | 4634\fB 12.3\fR 15620 0 15m 860 14m :
|
||
'y' turned Off | 7337\fB 11.3\fR 14396 92 13m 36 13m :
|
||
'x' turned On | 923\fB 10.6\fR 30544 16m 13m 1120 12m :
|
||
(when 3\fB WAS\fR current) | 991\fB 7.2\fR 9492 316 9176 12 9164 :
|
||
|\fI__7329__\fB7.0\fI__9036__140_8896___36_8860_\fR:
|
||
Huh? 4:Usr has some |\fI4_UID_USER_____GROUP____TTY________PID\fR:
|
||
\fBblank rows\fR! ? ? ? ? | \fB 0 jtwm root pts/2 5561\fR:
|
||
Aha, the 'i' command | \fB 0 root root ? 5560\fR:
|
||
applied (when 4\fB WAS\fR | :
|
||
current); could be | :
|
||
reversed with '=', | :
|
||
when 4\fB IS\fR current! +\fB--------------------------------------\fR+
|
||
.Rje
|
||
|
||
.Scr
|
||
Ok now, how about that \*(CW 1:Def and its\fB unseen tasks\fR?
|
||
At any time, you can quickly\fB retrieve\fR lost tasks in a number of ways:
|
||
1) Press '-', toggling just the \*(CW
|
||
2) Press '_', toggling\fB all\fR visible/invisible windows
|
||
( 1:Def is the\fI only\fR window currently\fB not shown\fR )
|
||
( afterward, it'll be the\fI only\fR window\fB showing\fR! )
|
||
* 3) Press '+', forcing all \*(TDs to become\fB visible\fR
|
||
4) Press 'A' to return to \*(FM,
|
||
with\fI only\fR 1:Def tasks shown and\fI without\fR a window name
|
||
|
||
Now that should be enough ways of getting a \*(TA\fB visible\fR again
|
||
to satisfy almost any user, don't ya think?
|
||
|
||
.in +4
|
||
\*(NT Use #3 above when you've messed up your screen beyond redemption.
|
||
The four \*(TDs will reappear, nice and even. They will also have\fB
|
||
retained\fR any customizations you had previously applied,\fI except\fR for
|
||
the 'i' (idle tasks) and 'n' (max tasks) commands.
|
||
.in
|
||
|
||
That's It !\ \ Piece of Cake !!\ \ Enjoy them there windows !!!\fR
|
||
|
||
.Zzz
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 5. FILES
|
||
.\" ----------------------------------------------------------------------
|
||
.\" ......................................................................
|
||
.SS 5a. SYSTEM Configuration File
|
||
The presence of this file will influence which version of the 'help' screen
|
||
is shown to an ordinary user.
|
||
More importantly, it will\fI limit\fR what ordinary users are allowed
|
||
to do when \*(Me is running.
|
||
They will\fB not\fR be able to issue the following commands (well, at least
|
||
not successfully, ha ha):
|
||
\fBk Kill\fR a task
|
||
\fBr Renice\fR a task
|
||
\fBd\fR or\fB s\fR Change\fB delay/sleep\fR interval
|
||
|
||
The system \*(CF is\fB not\fR created by \*(Me.
|
||
Rather,\fB you create this file manually\fR and place it in the \fI/etc\fR
|
||
directory.
|
||
Its name must be 'toprc' and must have\fI no\fR leading '.' (period).
|
||
It must have only\fI two lines\fR.
|
||
|
||
Here is an example of the contents of\fI /etc/toprc\fR:
|
||
\fBs\fR # line 1: 'secure' mode switch
|
||
\fB5.0\fR # line 2: 'delay'\ \ interval in seconds
|
||
|
||
.\" ......................................................................
|
||
.SS 5b. PERSONAL Configuration File
|
||
This file, written as '$HOME/\fI.your-name-4-top\fR' + '\fBrc\fR',
|
||
is eminently editable due to the numerous labels it contains.
|
||
But please don't!
|
||
Rather, use the 'W' \*(CI to create it or update it.
|
||
|
||
For the benefit of those who never follow such advise, here is the
|
||
general layout.
|
||
\fBglobal\fR # line 1: a shameless advertisement
|
||
\fR " \fR # line 2: id,altscr,irixps,delay,curwin
|
||
\fBper ea\fR # line a: winname,fieldscur
|
||
\fBwindow\fR # line b: winflags,sortindx,maxtasks
|
||
\fR " \fR # line c: summclr,msgsclr,headclr,taskclr
|
||
( and good luck with those winflags on line #b! )
|
||
|
||
If the $HOME variable is not present, \*(US will try to write the
|
||
personal \*(CF to the current directory, subject to permissions.
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 6. STUPID TRICKS Sampler
|
||
.\" ----------------------------------------------------------------------
|
||
With this task/process viewer, lots of things become\fB possible\fR.
|
||
Of course, that doesn't mean they should become\fB probable\fR.
|
||
So if you try any of them, just don't let anyone catch you.
|
||
|
||
Many of these 'tricks' work best when you give ol' \*(Me a scheduling boost
|
||
\*(EM so plan on starting him with a nice value of -10 (assuming you've got
|
||
the authority).
|
||
|
||
.\" ......................................................................
|
||
.SS 6a. Kernel Magic
|
||
.\" sorry, just can't help it -- don't ya love the sound of this?
|
||
For these stupid tricks, \*(Me needs \*(FM.
|
||
.\" ( apparently static was a potential concern )
|
||
|
||
.New
|
||
The user interface, through prompts and help, intentionally implies
|
||
that the delay interval is limited to tenths of a second.
|
||
However, you're free to set any desired delay.
|
||
If you want to see Linux at his scheduling best, try a delay of .09
|
||
seconds or less.
|
||
|
||
For this experiment, under x-windows open an xterm and maximize it.
|
||
Then do the following:
|
||
. provide a scheduling boost and tiny delay via:
|
||
nice -n -10 top -d.09
|
||
. keep sorted column highlighting \*F to minimize
|
||
path length
|
||
. turn \*O reverse row highlighting for emphasis
|
||
. try various sort columns (TIME/MEM work well),
|
||
and normal or reverse sorts to bring the most
|
||
active processes into view
|
||
|
||
What you'll see is a\fB very busy Linux\fR doing what he's always done
|
||
for you, but there was no program available to illustrate this (until now).
|
||
.Rjb 2
|
||
( now please, don't waste too many )
|
||
( \*(Pu cycles in this way, alright? )
|
||
.Rje
|
||
|
||
.New
|
||
Under an xterm using 'white-on-black' colors, try setting \*(Me's task color
|
||
to black and be sure that task highlighting is set to bold, not reverse.
|
||
Then set the delay interval to around .3 seconds.
|
||
|
||
After bringing the most active processes into view, what you'll see are
|
||
the\fB ghostly images\fR of just the currently running tasks.
|
||
Of course, a much better display is achieved by toggling idle processes \*F
|
||
and using normal/visible colors.
|
||
|
||
.\" ......................................................................
|
||
.SS 6b. Bouncing Windows
|
||
For these stupid tricks, \*(Me needs \*(AM.
|
||
|
||
.New
|
||
With 3 or 4 \*(TDs visible, pick any window other than the last
|
||
and turn idle processes \*F. <20>
|
||
|
||
Depending on where you applied 'i', sometimes several \*(TDs are\fB bouncing\fR
|
||
and sometimes it's like an\fB accordion\fR, as \*(Me tries his best to
|
||
allocate space.
|
||
|
||
.New
|
||
Set each window's summary lines differently: one with no memory; another with
|
||
no states; maybe one with nothing at all, just the message line. <20>
|
||
|
||
Then hold down 'a' or 'w' and watch a variation on bouncing windows.
|
||
What say we call these '\fBhopping windows\fR'.
|
||
|
||
.New
|
||
Display all 4 windows and for each, in turn, set idle processes to \*F.
|
||
|
||
You've just entered the "\fBextreme bounce\fR" zone. <20>
|
||
|
||
.\" ......................................................................
|
||
.SS 6c. The Big Bird Window
|
||
This stupid trick also requires \*(AM.
|
||
|
||
.New
|
||
Display all 4 windows and make sure that 1:Def is the \*(CW.
|
||
Then, keep increasing window size until the all the other \*(TDs
|
||
are "\fBpushed out of the nest\fR".
|
||
|
||
When they've all been displaced, toggle between all visible/invisible windows.
|
||
Then ponder this:
|
||
.br
|
||
is \*(Me fibbing or telling honestly your imposed truth?
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 7. NOTES and Rantings
|
||
.\" ----------------------------------------------------------------------
|
||
.\" ......................................................................
|
||
.SS 7a. The top Binary
|
||
.PP
|
||
To whom it may (should) concern: \*(Us, even with its vastly expanded
|
||
capabilities, is only slightly larger than the old top.
|
||
Were it not for extensive help text and additional sort callbacks, it would
|
||
be smaller.
|
||
.Rjb 6
|
||
Throw source carelessly at objectives, it\fI will\fR
|
||
produce equally careless machine instructions.
|
||
example: (num_\fBpages\fR - an_\fBaddress\fR)/1024 == duh?
|
||
kicker: \fBdocument\fR result as broken, due to\fB elf\fR!
|
||
\fB----------------------------------------------\fR
|
||
I know you're out there, are you getting this?
|
||
.Rje
|
||
|
||
.PP
|
||
Now, as for all those new capabilities like colors and windows and
|
||
highlighting, you'd expect \*(Us to be the "mother of all pigs"
|
||
compared to old \*(Me \*(EM right?
|
||
|
||
Yea, with \*(US expect following piglets:
|
||
.br
|
||
\ \. A\fI smaller\fR virtual image and resident footprint
|
||
.br
|
||
\ \. Slightly\fI fewer\fR major page faults
|
||
.br
|
||
\ \. A\fI large reduction\fR in minor page faults for SMP
|
||
.br
|
||
\ \. The\fI same\fR or better response time
|
||
.br
|
||
\ \. The same or\fI even less\fR \*(PU costs
|
||
|
||
Ideally any comparison of the old and new \*(Me should be against the same
|
||
libproc format (32-bit or 64-bit tics) and run in a true or simulated SMP
|
||
environment (producing separate \*(PU stats).
|
||
This latter requirement will coax old \*(Me into handling his own '/proc/stat'
|
||
access \*(EM something \*(Us always does, but with less cost.
|
||
|
||
.\" ......................................................................
|
||
.SS 7b. Comparing Performance
|
||
.PP
|
||
Even with equivalent libraries and '/proc/stat' access, it's difficult to
|
||
accurately compare tops using their \fBown displays\fR.
|
||
Results for these \*(Pu\-intensive programs (who frequently exceed their
|
||
time-slice) generally show a wide disparity in %CPU.
|
||
This is due to differing call patterns, kernel preemptions and the timing
|
||
of process snapshots.
|
||
For\fI slightly\fR better results, start each program with the following
|
||
commands:
|
||
./old-top -d 0.5
|
||
nice -n-10 ./new-top -d 0.4
|
||
|
||
While actually putting \*(Us at a performance disadvantage, the higher
|
||
scheduling priority and staggered timing will\fI periodically\fR yield
|
||
a somewhat truer picture.
|
||
You could even reverse those roles and get similar results.
|
||
|
||
The most\fI consistent\fR performance results will be obtained 'off-line',
|
||
using your shell's time pipe or the time program itself.
|
||
And even in a single processor environment or without equivalent libraries,
|
||
total cpu costs (user time + system time) are similar.
|
||
|
||
However, \*(Us's \*(Pu costs ARE influenced by the capabilities you choose
|
||
to exploit, even if they don't SEEM to be reflected in such timings.
|
||
So let's examine some...
|
||
|
||
.\" ......................................................................
|
||
.SS 7c. Cost of Stuff
|
||
.TP 3
|
||
.B Colors Cost\fR \*(EM Nada (almost).
|
||
Once the terminfo strings are built (\fIat\fR and\fI during\fR a user's behest)
|
||
they are SAVED with each window's stuff.
|
||
And while there will be extra tty escape sequences transmitted because
|
||
of colors, it makes no difference which 'char *' is actually used.
|
||
|
||
.TP 3
|
||
.B Highlighting Cost\fR \*(EM Nada (maybe), or blame it on Rio.
|
||
On second thought, let's blame it on the user.
|
||
|
||
For\fI row\fR highlighting, there is only the cost of those extra tty
|
||
escape sequences (same as for colors).
|
||
For\fI column\fR highlighting, there is a fairly\fB significant cost\fR
|
||
associated with column transition management combined with even more
|
||
tty output.
|
||
These increased costs are incurred on every \*(TD row.
|
||
|
||
Sooo... hey USER \*(EM \fIdo NOT highlight COLUMNS\fR.
|
||
You shouldn't need a constant visual reminder of your chosen sort field.
|
||
However, if you forget which field \*(Me is sorting it can serve as a
|
||
quick visual reminder.
|
||
|
||
.TP 3
|
||
.B Windows Cost\fR \*(EM Nada (if just 1 window).
|
||
If more than 1 window, almost certainly NOT Nada so blame it on reality.
|
||
Colors are not an issue, but those sort fields are.
|
||
|
||
If we could trust the user to always select the same 'c' state, 'S' state and
|
||
sort field (hey, why ya got multiple windows then user, huh?) AND if we can
|
||
trust someone to recompile \*(Me with a #define enabled, then we\fB could\fR
|
||
achieve 'Nada'.
|
||
|
||
Ok, not likely, so we're gonna' be doing multiple sorts.
|
||
BUT, it may not be as bad as it sounds.
|
||
Those sorts involve\fB pointers only\fR.
|
||
And,\fI that's as good as it gets\fR\ !\ \ (right Mr. N?)
|
||
|
||
.\" ......................................................................
|
||
.SS 7d. The top Sources
|
||
.TP 3
|
||
.B top.h\fR
|
||
Unlike his predecessor, \*(Us has a proper header file.
|
||
It contains ONLY declarations, NOT definitions.
|
||
And there are several conditionals present to help with further customizations
|
||
and experimentation.
|
||
All are \*F by default.
|
||
|
||
.TP 3
|
||
.B top.c\fR
|
||
Hopefully proves that source code needn't be a disorganized, misaligned MESS.
|
||
And, WHO says a source listing shouldn't occasionally make you SMILE?
|
||
Why, \*(Me.c even does a darn good job of following the suggestions in a
|
||
document hardly anybody seems to observe.
|
||
|
||
.Rjb 3
|
||
\fRthe\fB Linus Torvalds CodingStyle\fR guidelines ...
|
||
\fR-*- -*- -*- on indentation + etc. -*- -*- -*-\fR
|
||
\fRwell\fB almost all\fR, except for those\fB stinkin'\fR...
|
||
.Rje
|
||
|
||
.P
|
||
I suppose even Linus Torvalds is entitled to err now and again.
|
||
How so you say?
|
||
Tabs, me' bucko,\fB stinkin' tabs\fR!
|
||
That, plus the simplistic position regarding\fB indentation\fR espoused
|
||
in that otherwise excellent document.
|
||
|
||
.\" ......................................................................
|
||
.SS -*- Rant On, and on -*-
|
||
Let's compare two approaches to the tab/indentation issue with a small
|
||
code sample using tabs then spaces.
|
||
This snippet happens to be the key to \*(Me's use of\fB dynamic\fR colors
|
||
on many\fB static\fR screens, while also ensuring screen width isn't
|
||
exceeded so as to avoid line wraps.
|
||
We'll view just the first 40 columns, assuming one wishes to occasionally
|
||
provide\fI comments\fR to the right of actual code (you\fB do\fR, don't you?).
|
||
|
||
Then YOU decide which approach makes the most SENSE!
|
||
|
||
.ImgC
|
||
.B Stinkin' Tabs\fR versus\fB Spaces\fR: the Linus way
|
||
Hey, where'd my +\fB----\fR+\fB----\fR1\fB----\fR+\fB----\fR2\fB----\fR+\fB----\fR3\fB----\fR+\fB----\fR4+
|
||
many\fB code\fR lines | while (*sub_beg) { :
|
||
up-and-gone-to? | switch (*sub_end:
|
||
| case 0: :
|
||
Gosh, wonder if | \e Tabs Induced / :
|
||
Linus expects a | case 1: :
|
||
fellow to stick | +\fB WASTE-Lands\fR! + case 5: :
|
||
his\fB comments\fR on | :
|
||
the\fB left\fR side?! | + Not a Living + :
|
||
| :
|
||
Ever see source | +\fB line-of-code\fR + :
|
||
with\fI not enough\fR | :
|
||
whitespace; and | / To Be Found! \e :
|
||
this is\fB better\fR? | default::
|
||
| :
|
||
Oh\fI lookie here\fR, \e } :
|
||
there's just a\fB hint\fR of\fI REAL\fB code! ----> if (0 >= room) b\fR:
|
||
/ } /* end: while 'subtrin:
|
||
+\fB----------------------------------------\fR+
|
||
.Rje
|
||
|
||
.ImgC
|
||
.B Spaces\fR versus\fB Stinkin' Tabs\fR: the other way
|
||
+\fB----\fR+\fB----\fR1\fB----\fR+\fB----\fR2\fB----\fR+\fB----\fR3\fB----\fR+\fB----\fR4+
|
||
Wow, now\fB this\fR is | while (*sub_beg) { :\fB
|
||
Visible\fR hackin'! | switch (*sub_end) { :
|
||
| case 0: :
|
||
Hmmm, wonder\fB how\fR | *(sub_end + 1) = '\e0'; :\fB
|
||
many\fR programmers | case 1: case 2: case 3: case:\fB
|
||
read\fR those lines | case 5: case 6: case 7: case:
|
||
from the\fB LEFT\fR to | cap = Curwin->captab[(int:
|
||
the\fB RIGHT\fR? This | *sub_end = '\e0'; :
|
||
"innovation" may | printf("%s%.*s%s", cap, r:\fI
|
||
possibly benefit\fR | room -= (sub_end - sub_be:
|
||
those particular | sub_beg = ++sub_end; :
|
||
kinds of people, | break; :
|
||
you agree? Duh! | default: :
|
||
| ++sub_end; :
|
||
AND, there\fI might\fR | } :
|
||
even be room for | if (0 >= room) break; :
|
||
unseen\fB comments\fR! | } /* end: while 'subtrings' */ :
|
||
+\fB----------------------------------------\fR+
|
||
.Rje
|
||
|
||
.PP
|
||
.B Gosh, I just don't KNOW \*(EM\fB it's such a TOUGH choice...
|
||
|
||
Oh you\fB Stinkin' Tabs\fR:\ \ correspondence, Who-Cares; documentation,
|
||
Oh-Alright; even scripts, Well-If-You-Must.
|
||
But you have NO place within the\fB code-space\fR of MY C-source
|
||
listing!
|
||
So\fB be gone\fR already!!
|
||
|
||
.\" ......................................................................
|
||
.SS In Summation...
|
||
.Jbu
|
||
If you want to use tabs to the\fB right\fR of the\fB code\fR, go-for-it.
|
||
But PLEASE, not ever in the C-source\fB code-space\fR, thank-you-kindly.
|
||
Just use\fB three little ol' spaces\fR (exactly 3, no-more, no-less)
|
||
where you WOULD have stuck a stinkin' tab.
|
||
|
||
We'll get far more READABLE files, much less WAISTED precious horizontal space,
|
||
more consistent CURSORS and on, and ON, AND ON!
|
||
Plus, without those awful *the-devil's-own-handiwork*, the
|
||
aforementioned document need NEVER speak of their EVILS again.
|
||
|
||
.Jbu
|
||
Lastly, since SPACES (not stinkin' tabs) are SO beneficial, maybe
|
||
we should use just a\fB few more\fR of 'em.
|
||
Some of those C-thingies are VERY sensitive \*(EM they don't like being TOUCHED
|
||
by any other syntax element!
|
||
Which ones?
|
||
Why these guys:
|
||
|
||
\fBbraces\fR, \fBreserved words\fR and\fB binary operators\fR
|
||
( it's the TRUTH, they told me themselves )
|
||
|
||
.Jp
|
||
It's so EASY to keep 'em HAPPY!
|
||
And lo-and-behold, the combination of <\fBsp\fR>thingy<\fBsp\fR> turns out
|
||
to be a darn effective\fB bug repellent\fR, too.
|
||
So much so, one can actually code while TOTALLY NUDE yet still avoid
|
||
them ol' bug-bytes (sic-sic)!
|
||
.Rjb 5
|
||
step
|
||
down_from
|
||
me_punctilious
|
||
soap-box_once_again
|
||
[1 +5 +5 +5 = huh?]
|
||
.Rje
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 8. BUGS
|
||
.\" ----------------------------------------------------------------------
|
||
Bugs? What bugs? But, if ever there were, then...
|
||
|
||
Please send bug reports to:
|
||
Albert D\. Cahalan, <albert@users.sf.net>
|
||
|
||
[ thanks Albert, heaven forbid author should be bothered ]
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 9. HISTORY Former top
|
||
.\" ----------------------------------------------------------------------
|
||
The original top was written by Roger Binns,
|
||
based on Branko Lankester's <lankeste@fwi.uva.nl> ps program.
|
||
|
||
Robert Nation <nation@rocket.sanders.lockheed.com>
|
||
adapted it for the proc file system.
|
||
|
||
Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>
|
||
added support for configurable fields.
|
||
|
||
Plus many other individuals contributed over the years.
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 10. AUTHOR
|
||
.\" ----------------------------------------------------------------------
|
||
This entirely new and enhanced replacement was written by:
|
||
Jim / James C. Warner, <warnerjc@worldnet.att.net>
|
||
.ig
|
||
( as a means to learn Linux, can you believe it? )
|
||
( & he accidentally learned a little groff, too! )
|
||
..
|
||
|
||
With invaluable help from:
|
||
Craig Small, <csmall@small.dropbear.id.au>
|
||
Albert D\. Cahalan, <albert@users.sf.net>
|
||
|
||
.ig
|
||
.rj 2
|
||
.B -*-\fR few though they are, some yet believe\fB -*-\fR
|
||
.B -*-\~\~\~\~\~\~\~\fRin-the-\fBart\fR-of-programming\~\~\~\~\~\~\~\fB-*-\fR
|
||
..
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH 11. SEE ALSO
|
||
.\" ----------------------------------------------------------------------
|
||
.BR free (1),
|
||
.BR ps (1),
|
||
.BR uptime (1),
|
||
.BR vmstat (8),
|
||
.BR w (1).
|
||
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.ig CCend
|
||
.rj 1
|
||
\-*-
|
||
.PD
|
||
.in -3
|
||
Copyright (c) 2002 \*(EM JC Warner & Associates, Ltd.
|
||
|
||
Permission is granted to copy, distribute and/or modify this document
|
||
under the terms of the GNU Free Documentation License, Version 1.1 or
|
||
any later version published by the Free Software Foundation;
|
||
with no Front-Cover Texts, no Back-Cover Texts, and with the following
|
||
Invariant Sections and any sub-sections therein:
|
||
.na
|
||
.hy 0
|
||
.in +3
|
||
DIFFERENCES\ /\ New Features;
|
||
.br
|
||
STUPID\ TRICKS\ Sampler;
|
||
.br
|
||
NOTES\ and\ Rantings;
|
||
.br
|
||
AUTHOR
|
||
.in
|
||
A copy of the license is included in the section entitled
|
||
\(dqGNU Free Documentation License\(dq.
|
||
.CCend
|
||
.
|
||
.\" end: active doc ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||
.\" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||
|
||
|
||
.ig GFDLend
|
||
.\" ----------------------------------------------------------------------
|
||
.SH GNU Free Documentation License
|
||
Version 1.1, March 2000
|
||
|
||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
||
Everyone is permitted to copy and distribute verbatim copies
|
||
of this license document, but changing it is not allowed.
|
||
|
||
.SS 0. PREAMBLE
|
||
The purpose of this License is to make a manual, textbook, or other
|
||
written document "free" in the sense of freedom: to assure everyone
|
||
the effective freedom to copy and redistribute it, with or without
|
||
modifying it, either commercially or noncommercially. Secondarily,
|
||
this License preserves for the author and publisher a way to get
|
||
credit for their work, while not being considered responsible for
|
||
modifications made by others.
|
||
|
||
This License is a kind of "copyleft", which means that derivative
|
||
works of the document must themselves be free in the same sense. It
|
||
complements the GNU General Public License, which is a copyleft
|
||
license designed for free software.
|
||
|
||
We have designed this License in order to use it for manuals for free
|
||
software, because free software needs free documentation: a free
|
||
program should come with manuals providing the same freedoms that the
|
||
software does. But this License is not limited to software manuals;
|
||
it can be used for any textual work, regardless of subject matter or
|
||
whether it is published as a printed book. We recommend this License
|
||
principally for works whose purpose is instruction or reference.
|
||
|
||
.SS 1. APPLICABILITY AND DEFINITIONS
|
||
This License applies to any manual or other work that contains a
|
||
notice placed by the copyright holder saying it can be distributed
|
||
under the terms of this License. The "Document", below, refers to any
|
||
such manual or work. Any member of the public is a licensee, and is
|
||
addressed as "you".
|
||
|
||
A "Modified Version" of the Document means any work containing the
|
||
Document or a portion of it, either copied verbatim, or with
|
||
modifications and/or translated into another language.
|
||
|
||
A "Secondary Section" is a named appendix or a front-matter section of
|
||
the Document that deals exclusively with the relationship of the
|
||
publishers or authors of the Document to the Document's overall subject
|
||
(or to related matters) and contains nothing that could fall directly
|
||
within that overall subject. (For example, if the Document is in part a
|
||
textbook of mathematics, a Secondary Section may not explain any
|
||
mathematics.) The relationship could be a matter of historical
|
||
connection with the subject or with related matters, or of legal,
|
||
commercial, philosophical, ethical or political position regarding
|
||
them.
|
||
|
||
The "Invariant Sections" are certain Secondary Sections whose titles
|
||
are designated, as being those of Invariant Sections, in the notice
|
||
that says that the Document is released under this License.
|
||
|
||
The "Cover Texts" are certain short passages of text that are listed,
|
||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||
the Document is released under this License.
|
||
|
||
A "Transparent" copy of the Document means a machine-readable copy,
|
||
represented in a format whose specification is available to the
|
||
general public, whose contents can be viewed and edited directly and
|
||
straightforwardly with generic text editors or (for images composed of
|
||
pixels) generic paint programs or (for drawings) some widely available
|
||
drawing editor, and that is suitable for input to text formatters or
|
||
for automatic translation to a variety of formats suitable for input
|
||
to text formatters. A copy made in an otherwise Transparent file
|
||
format whose markup has been designed to thwart or discourage
|
||
subsequent modification by readers is not Transparent. A copy that is
|
||
not "Transparent" is called "Opaque".
|
||
|
||
Examples of suitable formats for Transparent copies include plain
|
||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||
or XML using a publicly available DTD, and standard-conforming simple
|
||
HTML designed for human modification. Opaque formats include
|
||
PostScript, PDF, proprietary formats that can be read and edited only
|
||
by proprietary word processors, SGML or XML for which the DTD and/or
|
||
processing tools are not generally available, and the
|
||
machine-generated HTML produced by some word processors for output
|
||
purposes only.
|
||
|
||
The "Title Page" means, for a printed book, the title page itself,
|
||
plus such following pages as are needed to hold, legibly, the material
|
||
this License requires to appear in the title page. For works in
|
||
formats which do not have any title page as such, "Title Page" means
|
||
the text near the most prominent appearance of the work's title,
|
||
preceding the beginning of the body of the text.
|
||
|
||
.SS 2. VERBATIM COPYING
|
||
You may copy and distribute the Document in any medium, either
|
||
commercially or noncommercially, provided that this License, the
|
||
copyright notices, and the license notice saying this License applies
|
||
to the Document are reproduced in all copies, and that you add no other
|
||
conditions whatsoever to those of this License. You may not use
|
||
technical measures to obstruct or control the reading or further
|
||
copying of the copies you make or distribute. However, you may accept
|
||
compensation in exchange for copies. If you distribute a large enough
|
||
number of copies you must also follow the conditions in section 3.
|
||
|
||
You may also lend copies, under the same conditions stated above, and
|
||
you may publicly display copies.
|
||
|
||
.SS 3. COPYING IN QUANTITY
|
||
If you publish printed copies of the Document numbering more than 100,
|
||
and the Document's license notice requires Cover Texts, you must enclose
|
||
the copies in covers that carry, clearly and legibly, all these Cover
|
||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||
the back cover. Both covers must also clearly and legibly identify
|
||
you as the publisher of these copies. The front cover must present
|
||
the full title with all words of the title equally prominent and
|
||
visible. You may add other material on the covers in addition.
|
||
Copying with changes limited to the covers, as long as they preserve
|
||
the title of the Document and satisfy these conditions, can be treated
|
||
as verbatim copying in other respects.
|
||
|
||
If the required texts for either cover are too voluminous to fit
|
||
legibly, you should put the first ones listed (as many as fit
|
||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||
pages.
|
||
|
||
If you publish or distribute Opaque copies of the Document numbering
|
||
more than 100, you must either include a machine-readable Transparent
|
||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||
a publicly-accessible computer-network location containing a complete
|
||
Transparent copy of the Document, free of added material, which the
|
||
general network-using public has access to download anonymously at no
|
||
charge using public-standard network protocols. If you use the latter
|
||
option, you must take reasonably prudent steps, when you begin
|
||
distribution of Opaque copies in quantity, to ensure that this
|
||
Transparent copy will remain thus accessible at the stated location
|
||
until at least one year after the last time you distribute an Opaque
|
||
copy (directly or through your agents or retailers) of that edition to
|
||
the public.
|
||
|
||
It is requested, but not required, that you contact the authors of the
|
||
Document well before redistributing any large number of copies, to give
|
||
them a chance to provide you with an updated version of the Document.
|
||
|
||
.SS 4. MODIFICATIONS
|
||
You may copy and distribute a Modified Version of the Document under
|
||
the conditions of sections 2 and 3 above, provided that you release
|
||
the Modified Version under precisely this License, with the Modified
|
||
Version filling the role of the Document, thus licensing distribution
|
||
and modification of the Modified Version to whoever possesses a copy
|
||
of it. In addition, you must do these things in the Modified Version:
|
||
|
||
.HP 3
|
||
.B A\fR.\ Use in the Title Page (and on the covers, if any) a title distinct
|
||
from that of the Document, and from those of previous versions (which should,
|
||
if there were any, be listed in the History section of the Document).
|
||
You may use the same title as a previous version if the original publisher of
|
||
that version gives permission.
|
||
.HP 3
|
||
.B B\fR.\ List on the Title Page, as authors, one or more persons or entities
|
||
responsible for authorship of the modifications in the Modified Version,
|
||
together with at least five of the principal authors of the Document
|
||
(all of its principal authors, if it has less than five).
|
||
.HP 3
|
||
.B C\fR.\ State on the Title page the name of the publisher of the Modified
|
||
Version, as the publisher.
|
||
.HP 3
|
||
.B D\fR.\ Preserve all the copyright notices of the Document.
|
||
.HP 3
|
||
.B E\fR.\ Add an appropriate copyright notice for your modifications adjacent
|
||
to the other copyright notices.
|
||
.HP 3
|
||
.B F\fR.\ Include, immediately after the copyright notices, a license notice
|
||
giving the public permission to use the Modified Version under the terms of
|
||
this License, in the form shown in the Addendum below.
|
||
.HP 3
|
||
.B G\fR.\ Preserve in that license notice the full lists of Invariant Sections
|
||
and required Cover Texts given in the Document's license notice.
|
||
.HP 3
|
||
.B H\fR.\ Include an unaltered copy of this License.
|
||
.HP 3
|
||
.B I\fR.\ Preserve the section entitled "History", and its title, and add to it
|
||
an item stating at least the title, year, new authors, and publisher of the
|
||
Modified Version as given on the Title Page.
|
||
If there is no section entitled "History" in the Document, create one stating
|
||
the title, year, authors, and publisher of the Document as given on its Title
|
||
Page, then add an item describing the Modified Version as stated in the
|
||
previous sentence.
|
||
.HP 3
|
||
.B J\fR.\ Preserve the network location, if any, given in the Document for
|
||
public access to a Transparent copy of the Document, and likewise the network
|
||
locations given in the Document for previous versions it was based on.
|
||
These may be placed in the "History" section.
|
||
You may omit a network location for a work that was published at least four
|
||
years before the Document itself, or if the original publisher of the version
|
||
it refers to gives permission.
|
||
.HP 3
|
||
.B K\fR.\ In any section entitled "Acknowledgements" or "Dedications", preserve
|
||
the section's title, and preserve in the section all the substance and tone of
|
||
each of the contributor acknowledgements and/or dedications given therein.
|
||
.HP 3
|
||
.B L\fR.\ Preserve all the Invariant Sections of the Document, unaltered in their
|
||
text and in their titles.
|
||
Section numbers or the equivalent are not considered part of the section titles.
|
||
.HP 3
|
||
.B M\fR.\ Delete any section entitled "Endorsements".
|
||
Such a section may not be included in the Modified Version.
|
||
.HP 3
|
||
.B N\fR.\ Do not retitle any existing section as "Endorsements" or to conflict
|
||
in title with any Invariant Section.
|
||
|
||
.PP
|
||
If the Modified Version includes new front-matter sections or
|
||
appendices that qualify as Secondary Sections and contain no material
|
||
copied from the Document, you may at your option designate some or all
|
||
of these sections as invariant. To do this, add their titles to the
|
||
list of Invariant Sections in the Modified Version's license notice.
|
||
These titles must be distinct from any other section titles.
|
||
|
||
You may add a section entitled "Endorsements", provided it contains
|
||
nothing but endorsements of your Modified Version by various
|
||
parties--for example, statements of peer review or that the text has
|
||
been approved by an organization as the authoritative definition of a
|
||
standard.
|
||
|
||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||
of Cover Texts in the Modified Version. Only one passage of
|
||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||
through arrangements made by) any one entity. If the Document already
|
||
includes a cover text for the same cover, previously added by you or
|
||
by arrangement made by the same entity you are acting on behalf of,
|
||
you may not add another; but you may replace the old one, on explicit
|
||
permission from the previous publisher that added the old one.
|
||
|
||
The author(s) and publisher(s) of the Document do not by this License
|
||
give permission to use their names for publicity for or to assert or
|
||
imply endorsement of any Modified Version.
|
||
|
||
.SS 5. COMBINING DOCUMENTS
|
||
You may combine the Document with other documents released under this
|
||
License, under the terms defined in section 4 above for modified
|
||
versions, provided that you include in the combination all of the
|
||
Invariant Sections of all of the original documents, unmodified, and
|
||
list them all as Invariant Sections of your combined work in its
|
||
license notice.
|
||
|
||
The combined work need only contain one copy of this License, and
|
||
multiple identical Invariant Sections may be replaced with a single
|
||
copy. If there are multiple Invariant Sections with the same name but
|
||
different contents, make the title of each such section unique by
|
||
adding at the end of it, in parentheses, the name of the original
|
||
author or publisher of that section if known, or else a unique number.
|
||
Make the same adjustment to the section titles in the list of
|
||
Invariant Sections in the license notice of the combined work.
|
||
|
||
In the combination, you must combine any sections entitled "History"
|
||
in the various original documents, forming one section entitled
|
||
"History"; likewise combine any sections entitled "Acknowledgements",
|
||
and any sections entitled "Dedications". You must delete all sections
|
||
entitled "Endorsements."
|
||
|
||
.SS 6. COLLECTIONS OF DOCUMENTS
|
||
You may make a collection consisting of the Document and other documents
|
||
released under this License, and replace the individual copies of this
|
||
License in the various documents with a single copy that is included in
|
||
the collection, provided that you follow the rules of this License for
|
||
verbatim copying of each of the documents in all other respects.
|
||
|
||
You may extract a single document from such a collection, and distribute
|
||
it individually under this License, provided you insert a copy of this
|
||
License into the extracted document, and follow this License in all
|
||
other respects regarding verbatim copying of that document.
|
||
|
||
.SS 7. AGGREGATION WITH INDEPENDENT WORKS
|
||
A compilation of the Document or its derivatives with other separate
|
||
and independent documents or works, in or on a volume of a storage or
|
||
distribution medium, does not as a whole count as a Modified Version
|
||
of the Document, provided no compilation copyright is claimed for the
|
||
compilation. Such a compilation is called an "aggregate", and this
|
||
License does not apply to the other self-contained works thus compiled
|
||
with the Document, on account of their being thus compiled, if they
|
||
are not themselves derivative works of the Document.
|
||
|
||
If the Cover Text requirement of section 3 is applicable to these
|
||
copies of the Document, then if the Document is less than one quarter
|
||
of the entire aggregate, the Document's Cover Texts may be placed on
|
||
covers that surround only the Document within the aggregate.
|
||
Otherwise they must appear on covers around the whole aggregate.
|
||
|
||
.SS 8. TRANSLATION
|
||
Translation is considered a kind of modification, so you may
|
||
distribute translations of the Document under the terms of section 4.
|
||
Replacing Invariant Sections with translations requires special
|
||
permission from their copyright holders, but you may include
|
||
translations of some or all Invariant Sections in addition to the
|
||
original versions of these Invariant Sections. You may include a
|
||
translation of this License provided that you also include the
|
||
original English version of this License. In case of a disagreement
|
||
between the translation and the original English version of this
|
||
License, the original English version will prevail.
|
||
|
||
.SS 9. TERMINATION
|
||
You may not copy, modify, sublicense, or distribute the Document except
|
||
as expressly provided for under this License. Any other attempt to
|
||
copy, modify, sublicense or distribute the Document is void, and will
|
||
automatically terminate your rights under this License. However,
|
||
parties who have received copies, or rights, from you under this
|
||
License will not have their licenses terminated so long as such
|
||
parties remain in full compliance.
|
||
|
||
.SS 10. FUTURE REVISIONS OF THIS LICENSE
|
||
The Free Software Foundation may publish new, revised versions
|
||
of the GNU Free Documentation License from time to time. Such new
|
||
versions will be similar in spirit to the present version, but may
|
||
differ in detail to address new problems or concerns. See
|
||
http://www.gnu.org/copyleft/.
|
||
|
||
Each version of the License is given a distinguishing version number.
|
||
If the Document specifies that a particular numbered version of this
|
||
License "or any later version" applies to it, you have the option of
|
||
following the terms and conditions either of that specified version or
|
||
of any later version that has been published (not as a draft) by the
|
||
Free Software Foundation. If the Document does not specify a version
|
||
number of this License, you may choose any version ever published (not
|
||
as a draft) by the Free Software Foundation.
|
||
|
||
.SS ADDENDUM: How to use this License for your documents
|
||
To use this License in a document you have written, include a copy of
|
||
the License in the document and put the following copyright and
|
||
license notices just after the title page:
|
||
|
||
.IP "" 3
|
||
Copyright (c) YEAR YOUR NAME.
|
||
|
||
Permission is granted to copy, distribute and/or modify this document under the
|
||
terms of the GNU Free Documentation License, Version 1.1 or any later version
|
||
published by the Free Software Foundation;\ \ with the Invariant Sections being
|
||
LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the
|
||
Back-Cover Texts being LIST.
|
||
A copy of the license is included in the section entitled "GNU
|
||
Free Documentation License".
|
||
|
||
If you have no Invariant Sections, write "with no Invariant Sections"
|
||
instead of saying which ones are invariant. If you have no
|
||
Front-Cover Texts, write "no Front-Cover Texts" instead of
|
||
"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
|
||
|
||
If your document contains nontrivial examples of program code, we
|
||
recommend releasing these examples in parallel under your choice of
|
||
free software license, such as the GNU General Public License,
|
||
to permit their use in free software.
|
||
|
||
.\" ----------------------------------------------------------------------
|
||
.SH \fRend of\fB GNU Free Documentation License
|
||
.IP ""
|
||
.PP
|
||
.GFDLend
|
||
.\" end: gfdl license ||||||||||||||||||||||||||||||||||||||||||||||||
|
||
.\" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|