top.1 94.7 KB
Newer Older
csmall's avatar
csmall committed
1 2 3
.ig igEND
. manual page for NEW top
. Copyright (c) 2002, by:      JC Warner & Associates, Ltd.
csmall's avatar
csmall committed
4
.
csmall's avatar
csmall committed
5 6 7 8 9
. 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):
10
.   all .ig sections, including this one
csmall's avatar
csmall committed
11 12 13 14
.   DIFFERENCES / New Features
.   STUPID TRICKS Sampler
.   NOTES and Rantings
.   AUTHOR
csmall's avatar
csmall committed
15
.
csmall's avatar
csmall committed
16 17
. A copy of the Free Documentation License is included in the section
. entitled "GNU Free Documentation License".
csmall's avatar
csmall committed
18
.
csmall's avatar
csmall committed
19 20
. [ that section is found near the end of this document & ]
. [ can be made printable by disabling the .ig directive! ]
csmall's avatar
csmall committed
21
.
csmall's avatar
csmall committed
22
.igEND
23

csmall's avatar
csmall committed
24
.\" Setup ////////////////////////////////////////////////////////////////
25
\#  ** Comment out '.nr' or set to 0 to eliminate WIDTH fiddlin' !
albert's avatar
albert committed
26
.nr half_xtra 4
27
.
28
.ll +(\n[half_xtra] + \n[half_xtra])
csmall's avatar
csmall committed
29
.
csmall's avatar
csmall committed
30
\#                      Special right justify macros ---------------------
31 32 33 34
\#                          - right justify begin
.de Rjb
.ll -\n[half_xtra]
.rj \\$1
csmall's avatar
csmall committed
35 36
..
\#                          - right justify end
37 38
.de Rje
.ll +\n[half_xtra]
csmall's avatar
csmall committed
39 40
..
\#                      Jimmy's darn Bullet style ------------------------
41 42
.de Jbu
.IP "-" 3
csmall's avatar
csmall committed
43 44
..
\#                          - bullet continuation paragraph
45 46
.de Jp
.IP "" 3
csmall's avatar
csmall committed
47 48
..
\#                      New features/differences style -------------------
49 50
.de New
.IP "-*-" 5
csmall's avatar
csmall committed
51 52
..
\#                      Screen image style -------------------------------
53 54 55
.de Img
.IP "" -4
.Rjb 26
csmall's avatar
csmall committed
56 57
..
\#                      Code image style ---------------------------------
58 59 60
.de ImgC
.IP "" -4
.Rjb 20
csmall's avatar
csmall committed
61 62
..
\#                      Screen narrative (wide narrative) style ----------
63
.de Scr
csmall's avatar
csmall committed
64
.PP
65
.in -4
csmall's avatar
csmall committed
66 67
..
\#                      Special emphasis ---------------------------------
68 69
.de Zzz
.ce
csmall's avatar
csmall committed
70 71 72 73 74
-*- -*- -*-
..
.
\#                      Commonly used strings (for consistency) ----------
\#                          - a real em-dash, darn-it
75
.ds EM \ \fB\-\-\ \fR
csmall's avatar
csmall committed
76
\#                          - these two are for chuckles, makes great grammar
77 78
.ds Me top
.ds ME \fBtop\fR
csmall's avatar
csmall committed
79
\#                          - hey, these two ain't too shabby, either
80 81
.ds Us this\ \*(Me
.ds US \fBthis\fR\ \*(Me
csmall's avatar
csmall committed
82
\#                          - other misc strings for consistent usage/emphasis
83 84
.ds F \fIOff\fR
.ds O \fIOn\fR
csmall's avatar
csmall committed
85
.
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
.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
csmall's avatar
csmall committed
103
\#                          - xref's that depend on commands or topic names
104 105 106 107
.ds XC See the
.ds Xc see the
.ds XT See topic
.ds Xt see topic
csmall's avatar
csmall committed
108
.
csmall's avatar
csmall committed
109 110
.\" //////////////////////////////////////////////////////////////////////
.\" ----------------------------------------------------------------------
csmall's avatar
csmall committed
111
.TH TOP 1 "September 2002" "Linux" "Linux User's Manual"
csmall's avatar
csmall committed
112 113 114 115 116 117
.\" ----------------------------------------------------------------------


.\" ----------------------------------------------------------------------
.SH NAME
.\" ----------------------------------------------------------------------
csmall's avatar
csmall committed
118
top \- display Linux tasks
csmall's avatar
csmall committed
119 120 121 122 123 124 125 126


.\" ----------------------------------------------------------------------
.SH SYNOPSIS
.\" ----------------------------------------------------------------------
\*(ME \-\fBhv\fR | \-\fBbcisS\fR \-\fBd\fI delay\fR \-\fBn\fI
iterations\fR \-\fBp\fI pid\fR [,\fI pid\fR ...]

csmall's avatar
csmall committed
127
The traditional switches '-' and whitespace are optional.
csmall's avatar
csmall committed
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144


.\" ----------------------------------------------------------------------
.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.
csmall's avatar
csmall committed
145 146
That new name, possibly an alias, will then be reflected on \*(Me's display
and used when reading and writing a \*(CF.
csmall's avatar
csmall committed
147 148 149 150 151 152 153 154 155 156 157 158 159 160


.\" ----------------------------------------------------------------------
.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
csmall's avatar
csmall committed
161 162 163 164 165
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.
csmall's avatar
csmall committed
166 167

.New
csmall's avatar
csmall committed
168 169 170
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.
csmall's avatar
csmall committed
171 172 173 174

.New
You may optionally apply 2 distinct types of\fB highlighting\fR to
running\fB tasks\fR and/or\fB sorted columns\fR.
csmall's avatar
csmall committed
175 176
With \*(Us, you'll be able to instantly spot running tasks and always
know the current sort field.
csmall's avatar
csmall committed
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217

.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.
csmall's avatar
csmall committed
218 219
And with \*(Us you won't be fooled with field choices that are "not yet
implemented".
csmall's avatar
csmall committed
220 221

.New
csmall's avatar
csmall committed
222
Task memory statistics are more meaningful\fI and\fR more accurate\fR.
csmall's avatar
csmall committed
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237

.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.
238
This \*(Me has been completely cured of:
csmall's avatar
csmall committed
239 240 241 242 243 244 245 246 247 248 249 250 251
.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
252 253 254 255 256 257 258
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.
csmall's avatar
csmall committed
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
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).
301
Precious horizontal space is no longer squandered.
csmall's avatar
csmall committed
302 303 304 305 306 307 308 309 310 311 312 313

.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:
albert's avatar
albert committed
314
     l, t, 1, m    .\fB1\fR |Cpu(s):  \fB 6.6%\fR user,  \fB 2.3%\fR system,   :\fB
csmall's avatar
csmall committed
315 316 317 318 319 320 321 322 323 324 325 326 327 328 329
   ------------>   .\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 :
330
 (\fB all concurrently\fR! )| 5560 xfs        9   0  0.0   0:00.01 :
csmall's avatar
csmall committed
331 332 333 334 335 336 337 338 339 340 341 342 343 344
                      | 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.

345
    \fIGlobal_defaults\fR
csmall's avatar
csmall committed
346 347 348 349 350 351 352 353 354 355 356 357 358 359
       '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)
csmall's avatar
csmall committed
360
       'R' - Reverse sort       On\ \ (sort pids high-to-low)
csmall's avatar
csmall committed
361
     * 'S' - Cumulative time    \fBOff\fR (exclude dead children)
csmall's avatar
csmall committed
362 363 364 365 366 367 368 369 370 371 372
       '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?
373
Well, of course there's the 'q' \*(CI, but then \*(Me does quite well
csmall's avatar
csmall committed
374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394
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
csmall's avatar
csmall committed
395 396
       b. SUMMARY Area Commands
       c. TASK Area Commands
csmall's avatar
csmall committed
397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412
       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
csmall's avatar
csmall committed
413 414 415 416
       a. The top Binary
       b. Comparing Performance
       c. Cost of Stuff
       d. The top Sources
csmall's avatar
csmall committed
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436
          -*- 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
csmall's avatar
csmall committed
437
limit you've set with the '-n' \*(CO or until killed.
csmall's avatar
csmall committed
438 439 440 441 442 443 444 445 446 447

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.
csmall's avatar
csmall committed
448
\*(XC 'c' \*(CI for additional information.
csmall's avatar
csmall committed
449 450 451 452 453

.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.
csmall's avatar
csmall committed
454
Later this can be changed with the 'd' or 's' \*(CIs.
csmall's avatar
csmall committed
455 456

In all cases, however, such changes are\fI prohibited\fR if \*(Me is running
csmall's avatar
csmall committed
457 458 459 460 461 462 463 464
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.
csmall's avatar
csmall committed
465 466 467 468 469 470
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.
csmall's avatar
csmall committed
471
One representing the results of the kernel's\fB previously unseen\fR
csmall's avatar
csmall committed
472
scheduling efforts.
csmall's avatar
csmall committed
473
You may be surprised.
csmall's avatar
csmall committed
474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520
.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?
csmall's avatar
csmall committed
521
Test thus:\ \ \*(Me\fB d.1s\fR
csmall's avatar
csmall committed
522 523 524 525 526 527 528
.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
csmall's avatar
csmall committed
529
\*(EM he'll completely overlook that 's' \*(CO because
csmall's avatar
csmall committed
530 531
he-sees-poorly-but-won't-wear-glasses.

csmall's avatar
csmall committed
532 533 534 535
.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
csmall's avatar
csmall committed
536
time that it\fB and\fR its dead children have used.
csmall's avatar
csmall committed
537 538
\*(XC 'S' \*(CI for additional information regarding this mode.

csmall's avatar
csmall committed
539 540 541 542 543 544 545 546 547 548 549 550 551
.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
csmall's avatar
csmall committed
552 553
you may have established for them with the 'o' (Order fields) \*(CI, reviewed
in the following topic.
csmall's avatar
csmall committed
554

csmall's avatar
csmall committed
555 556
Any field is selectable as the\fB sort field\fR, and you control whether they
are sorted high-to-low or low-to-high.
csmall's avatar
csmall committed
557
For additional information on sort provisions \*(Xt 3c. TASK Area Commands.
csmall's avatar
csmall committed
558

csmall's avatar
csmall committed
559 560
.TP 3
a:\fB PID\fR \*(EM Process Id\fR
csmall's avatar
csmall committed
561 562 563
The task's unique process ID, which periodically wraps at 32767,
though never restarting at zero.

csmall's avatar
csmall committed
564 565
.TP 3
b:\fB PPID\fR \*(EM Parent Process Pid\fR
csmall's avatar
csmall committed
566 567
The process ID of a task's parent.

csmall's avatar
csmall committed
568 569
.TP 3
c:\fB PGID\fR \*(EM Process Group Id\fR
csmall's avatar
csmall committed
570 571
The grouping of tasks which becomes part of job control.
It is used for distribution of signals and to arbitrate terminal I/O requests.
csmall's avatar
csmall committed
572 573 574 575
There is one process group per pipeline.

.TP 3
d:\fB UID\fR \*(EM User Id\fR
csmall's avatar
csmall committed
576 577
The user ID of the task's owner.

csmall's avatar
csmall committed
578 579
.TP 3
e:\fB USER\fR \*(EM User Name
csmall's avatar
csmall committed
580 581
The user name of the task's owner.

csmall's avatar
csmall committed
582 583
.TP 3
f:\fB GROUP\fR \*(EM Group Name
csmall's avatar
csmall committed
584 585
The group name of the task's owner.

csmall's avatar
csmall committed
586 587
.TP 3
g:\fB TTY\fR \*(EM Controlling Tty
csmall's avatar
csmall committed
588 589 590 591 592 593
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.

csmall's avatar
csmall committed
594 595
.TP 3
h:\fB PR\fR \*(EM Priority
csmall's avatar
csmall committed
596 597
The priority of the task.

csmall's avatar
csmall committed
598 599
.TP 3
i:\fB NI\fR \*(EM Nice value
csmall's avatar
csmall committed
600 601 602 603 604 605
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.

csmall's avatar
csmall committed
606 607
.TP 3
j:\fB #C\fR \*(EM Last used \*(PU (SMP)
csmall's avatar
csmall committed
608 609 610 611 612 613 614
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).

csmall's avatar
csmall committed
615 616
.TP 3
k:\fB %CPU\fR \*(EM \*(PU usage
csmall's avatar
csmall committed
617 618 619 620 621 622 623
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.

csmall's avatar
csmall committed
624 625
.TP 3
l:\fB TIME\fR \*(EM \*(PU Time
csmall's avatar
csmall committed
626 627 628 629 630
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.

csmall's avatar
csmall committed
631 632
.TP 3
m:\fB TIME+\fR \*(EM \*(PU Time, hundredths
csmall's avatar
csmall committed
633 634 635
The same as 'TIME', but reflecting more granularity through hundredths of
a second.

csmall's avatar
csmall committed
636 637
.TP 3
n:\fB %MEM\fR \*(EM Memory usage (RES)
csmall's avatar
csmall committed
638 639
A task's currently used share of available \*(MP.

csmall's avatar
csmall committed
640 641
.TP 3
o:\fB VIRT\fR \*(EM Virtual Image (kb)
csmall's avatar
csmall committed
642 643 644 645 646 647
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.

csmall's avatar
csmall committed
648 649
.TP 3
p:\fB SWAP\fR \*(EM Swapped size (kb)
csmall's avatar
csmall committed
650 651
The swapped out portion of a task's total \*(MV image.

csmall's avatar
csmall committed
652 653
.TP 3
q:\fB RES\fR \*(EM Resident size (kb)
csmall's avatar
csmall committed
654 655 656 657
The non-swapped \*(MP a task has used.

RES = CODE + DATA.

csmall's avatar
csmall committed
658 659
.TP 3
r:\fB CODE\fR \*(EM Code size (kb)
csmall's avatar
csmall committed
660 661 662
The amount of \*(MP devoted to executable code, also known as
the 'text resident set' size or TRS.

csmall's avatar
csmall committed
663 664
.TP 3
s:\fB DATA\fR \*(EM Data+Stack size (kb)
csmall's avatar
csmall committed
665 666 667
The amount of \*(MP devoted to other than executable code, also known as
the 'data resident set' size or DRS.

csmall's avatar
csmall committed
668 669
.TP 3
t:\fB SHR\fR \*(EM Shared Mem size (kb)
csmall's avatar
csmall committed
670 671 672 673 674
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.

csmall's avatar
csmall committed
675 676
.TP 3
u:\fB nFLT\fR \*(EM Page Fault count
csmall's avatar
csmall committed
677 678 679 680 681 682
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.

csmall's avatar
csmall committed
683 684
.TP 3
v:\fB nDRT\fR \*(EM Dirty Pages count
csmall's avatar
csmall committed
685 686 687 688 689
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.

csmall's avatar
csmall committed
690 691
.TP 3
w:\fB S\fR \*(EM Process Status
csmall's avatar
csmall committed
692
The status of the task which can be one of:
csmall's avatar
csmall committed
693 694 695 696 697 698 699 700 701 702 703 704 705
   '\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
csmall's avatar
csmall committed
706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727
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

csmall's avatar
csmall committed
728 729
.TP 3
y:\fB WCHAN\fR \*(EM Sleeping in Function
csmall's avatar
csmall committed
730 731 732 733 734
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).
csmall's avatar
csmall committed
735 736 737 738 739 740 741

.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

csmall's avatar
csmall committed
742 743
.TP 3
z:\fB Flags\fR \*(EM Task Flags
csmall's avatar
csmall committed
744 745
This column represents the task's current scheduling flags which \*(Us
expresses in hexadecimal notation, but with zeros suppressed.
csmall's avatar
csmall committed
746
These flags are officially documented in <linux/sched.h>.
csmall's avatar
csmall committed
747 748 749 750 751 752 753 754 755 756 757 758 759 760
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:
csmall's avatar
csmall committed
761
   \fIANOPQRSTUVXbcdefgjlmyzWHIK\fR
csmall's avatar
csmall committed
762 763 764 765 766 767 768 769
.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...
csmall's avatar
csmall committed
770 771 772 773 774
    \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)
csmall's avatar
csmall committed
775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792
    \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.
793 794
Some commands appear more than once \*(EM their meaning or scope may vary
depending on the context in which they are issued.
csmall's avatar
csmall committed
795 796

  3a.\fI GLOBAL_Commands\fR
797
        <Ret>, <Sp> ?, =, A, d, G, h, I, k, q, r, s, W, Z
csmall's avatar
csmall committed
798 799 800 801
  3b.\fI SUMMARY_Area_Commands\fR
        l, m, t, 1
  3c.\fI TASK_Area_Commands\fR
        Appearance:  b, x, y, z
csmall's avatar
csmall committed
802 803 804
        Content:     c, f, o, S, u
        Size:        #, i, n
        Sorting:     <, >, F, O, R
csmall's avatar
csmall committed
805
  3d.\fI COLOR_Mapping\fR
csmall's avatar
csmall committed
806
        <Ret>, a, b, H, M, q, S, T, w, z, 0 - 7
csmall's avatar
csmall committed
807
  4b.\fI COMMANDS_for_Windows\fR
csmall's avatar
csmall committed
808
        -, _, =, +, A, a, G, g, w
csmall's avatar
csmall committed
809 810 811 812 813 814

.\" ......................................................................
.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'.
csmall's avatar
csmall committed
815 816

If you wish to know in advance whether or not your \*(Me has been secured,
csmall's avatar
csmall committed
817 818
simply ask for help and view the system summary on the second line.

csmall's avatar
csmall committed
819 820 821 822 823 824 825 826 827
.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.

csmall's avatar
csmall committed
828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849
.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
850
This command will switch between \*(FM and \*(AM.
csmall's avatar
csmall committed
851
\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
852
\*(CWs and field groups.
csmall's avatar
csmall committed
853 854 855

.TP 7
*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
csmall's avatar
csmall committed
856 857 858
You will be prompted to enter the delay time, in seconds, between
display updates.

csmall's avatar
csmall committed
859
Fractional seconds are honored, but a negative number is not allowed.
csmall's avatar
csmall committed
860 861 862 863 864 865
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.
csmall's avatar
csmall committed
866 867 868 869 870 871 872
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
csmall's avatar
csmall committed
873
\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
csmall's avatar
csmall committed
874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896
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
897
\ \ \'\fBq\fR\' :\fIQuit\fR
csmall's avatar
csmall committed
898 899 900 901 902 903 904 905 906 907 908 909 910

.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
csmall's avatar
csmall committed
911
later in\fB exactly\fR that same state.
csmall's avatar
csmall committed
912 913 914 915

.TP 7
\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
This key will take you to a separate screen where you can change the
csmall's avatar
csmall committed
916 917
colors for the \*(CW, or for all windows.
For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
csmall's avatar
csmall committed
918 919

.IP "*" 3
csmall's avatar
csmall committed
920
The commands shown with an \*(AS are\fB not available\fR in 'Secure mode',
csmall's avatar
csmall committed
921 922 923 924 925 926 927 928 929
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.
csmall's avatar
csmall committed
930
\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
csmall's avatar
csmall committed
931 932 933 934
\*(CWs and field groups.

.TP 7
\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
csmall's avatar
csmall committed
935
This is also the line containing the program name (possibly an alias) when
csmall's avatar
csmall committed
936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955
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.

albert's avatar
albert committed
956
When you see 'Cpu(s):' in the \*(SA, the '1' toggle is \*O and all
csmall's avatar
csmall committed
957
\*(Pu information is gathered in a single line.
albert's avatar
albert committed
958
Otherwise, each \*(Pu is displayed separately as: 'Cpu0, Cpu1, ...'
csmall's avatar
csmall committed
959 960

.in +4
961 962
\*(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'.
csmall's avatar
csmall committed
963 964 965 966
You can either avoid issuing this command or recompile \*(Me with the
appropriate #define enabled so the command will be restricted to SMP.
.in

csmall's avatar
csmall committed
967
.PP
csmall's avatar
csmall committed
968 969 970
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)
csmall's avatar
csmall committed
971
sacrificed the program name in \*(FM or the \*(CW name when in \*(AM.
csmall's avatar
csmall committed
972 973 974 975 976 977

.\" ......................................................................
.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
csmall's avatar
csmall committed
978
\*(TD has been toggled \*F (\*(Xt 4. ALTERNATE\-DISPLAY Mode).
csmall's avatar
csmall committed
979

csmall's avatar
csmall committed
980
.PP
csmall's avatar
csmall committed
981
.\" .........................
csmall's avatar
csmall committed
982
.B APPEARANCE\fR of \*(TW
csmall's avatar
csmall committed
983 984 985 986 987 988 989 990
.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
csmall's avatar
csmall committed
991 992 993
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.
csmall's avatar
csmall committed
994 995
However, if you forget which field \*(Me is sorting this command can serve
as a quick visual reminder.
csmall's avatar
csmall committed
996 997 998 999

.TP 7
\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
Please use this toggle \*(EM highlight running tasks!
csmall's avatar
csmall committed
1000 1001 1002
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.
csmall's avatar
csmall committed
1003 1004 1005 1006 1007

.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.
csmall's avatar
csmall committed
1008
This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
1009
state of the 'x', 'y' or 'b' toggles.
csmall's avatar
csmall committed
1010

csmall's avatar
csmall committed
1011
.PP
csmall's avatar
csmall committed
1012
.\" .........................
csmall's avatar
csmall committed
1013
.B CONTENT\fR of \*(TW
csmall's avatar
csmall committed
1014 1015 1016 1017 1018 1019 1020 1021
.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
csmall's avatar
csmall committed
1022
\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
csmall's avatar
csmall committed
1023
These keys display separate screens where you can change which
csmall's avatar
csmall committed
1024 1025 1026
fields are displayed and their order.
For additional information on these \*(CIs
\*(Xt 2b. SELECTING and ORDERING Columns.
csmall's avatar
csmall committed
1027 1028 1029 1030

.TP 7
\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
csmall's avatar
csmall committed
1031
time that it\fB and\fR its dead children\fR have used.
csmall's avatar
csmall committed
1032 1033 1034 1035 1036 1037 1038

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.
csmall's avatar
csmall committed
1039 1040

After issuing this command, you'll be informed of the new state of this toggle.
csmall's avatar
csmall committed
1041
If you wish to know in advance whether or not 'Cumulative mode' is in
csmall's avatar
csmall committed
1042 1043 1044 1045 1046
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.
csmall's avatar
csmall committed
1047 1048
Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
no tasks will be shown.
csmall's avatar
csmall committed
1049 1050 1051 1052

Later, if you wish to monitor all tasks again, re-issue this command but
just press <Enter> at the prompt, without providing a name.

csmall's avatar
csmall committed
1053
.PP
csmall's avatar
csmall committed
1054
.\" .........................
csmall's avatar
csmall committed
1055
.B SIZE\fR of \*(TW
csmall's avatar
csmall committed
1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075
.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
.\" .........................
csmall's avatar
csmall committed
1076
.B SORTING\fR of \*(TW
csmall's avatar
csmall committed
1077
.br
csmall's avatar
csmall committed
1078 1079
.in +2
Before using any of these sort provisions, \*(Me suggests that you
csmall's avatar
csmall committed
1080
temporarily turn on column highlighting using the '\fBx\fR' \*(CI.
csmall's avatar
csmall committed
1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
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.

csmall's avatar
csmall committed
1116
This \*(CI can be a convienent way to simply verify the current sort field,
csmall's avatar
csmall committed
1117
when running \*(Me with column highlighting turned \*F.
csmall's avatar
csmall committed
1118 1119 1120 1121

.TP 7
\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
Internally to \*(Me, 'normal' is 'reverse'.
csmall's avatar
csmall committed
1122
.Rjb 1
csmall's avatar
csmall committed
1123
 ...\fBsay what\fR?
csmall's avatar
csmall committed
1124
.Rje
csmall's avatar
csmall committed
1125
Without 'R', \*(Me will sort fields high-to-low.
csmall's avatar
csmall committed
1126
.Rjb 1
csmall's avatar
csmall committed
1127
 ...that's\fI reverse\fR, \*(Me's\fI normal\fR mode!
csmall's avatar
csmall committed
1128
.Rje
csmall's avatar
csmall committed
1129 1130 1131 1132 1133

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?

csmall's avatar
csmall committed
1134 1135 1136 1137 1138 1139
.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

csmall's avatar
csmall committed
1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162
.\" ......................................................................
.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+
csmall's avatar
csmall committed
1163
 this shows you the   |\fBHelp for color mapping\fR - procps versio:\fB
csmall's avatar
csmall committed
1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217
 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
csmall's avatar
csmall committed
1218
field groups\fR (\*(Xc 'G' \*(CI, repeated below).
csmall's avatar
csmall committed
1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251

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
csmall's avatar
csmall committed
1252
\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
csmall's avatar
csmall committed
1253
The '-' (minus) key turns the \*(CW's \*(TD \*O and \*F.
1254 1255 1256 1257
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.
csmall's avatar
csmall committed
1258 1259 1260 1261 1262 1263 1264 1265

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).
csmall's avatar
csmall committed
1266 1267 1268
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).
csmall's avatar
csmall committed
1269 1270

.TP 7
csmall's avatar
csmall committed
1271
*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
csmall's avatar
csmall committed
1272 1273 1274 1275 1276
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.
csmall's avatar
csmall committed
1277 1278 1279
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.
csmall's avatar
csmall committed
1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292

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
csmall's avatar
csmall committed
1293
*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
csmall's avatar
csmall committed
1294 1295 1296 1297 1298 1299 1300 1301 1302 1303
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
csmall's avatar
csmall committed
1304
*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
csmall's avatar
csmall committed
1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319
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.
csmall's avatar
csmall committed
1320 1321
    \'=', 'A', 'G'  are\fB always\fR available
    \'a', 'w'       act the same when\fB color mapping\fR
csmall's avatar
csmall committed
1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345

.\" ......................................................................
.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:
albert's avatar
albert committed
1346
  will be available.  |Cpu(s):  \fB 0.7%\fR user,  \fB 1.3%\fR system,   :
csmall's avatar
csmall committed
1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401
                      |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:
albert's avatar
albert committed
1402
  issued here,        |Cpu(s):  \fB 2.0%\fR user,  \fB 0.7%\fR system,   :
csmall's avatar
csmall committed
1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464
  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,  :
1465
  b,i,n,u,x,y, etc.   |Tasks: \fB 75\fR total,  \fB 2\fR running, \fB 73\fR sle:
albert's avatar
albert committed
1466
  & m = lost Mem/Swap |Cpu(s): \fB 10.6%\fR user,  \fB 0.0%\fR system,   :
csmall's avatar
csmall committed
1467 1468
                      |______________________________________:
 2:Job was very busy: |\fI2__PID__PPID_Command____________TIME+_\fR:
csmall's avatar
csmall committed
1469 1470 1471 1472 1473 1474
  '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:
csmall's avatar
csmall committed
1475 1476
                      |\fI___836_____1_\fBlogin_--_root\fI_____0:00.00\fR:
 3:Mem has altered    |\fI3__PID_%MEM__VIRT_SWAP__RES_CODE_DATA_\fR:
csmall's avatar
csmall committed
1477 1478 1479 1480 1481
  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:
csmall's avatar
csmall committed
1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506
 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.
csmall's avatar
csmall committed
1507 1508 1509
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.
csmall's avatar
csmall committed
1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529
.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
csmall's avatar
csmall committed
1530
   \fBd\fR or\fB s\fR    Change\fB delay/sleep\fR interval
csmall's avatar
csmall committed
1531 1532

The system \*(CF is\fB not\fR created by \*(Me.
1533 1534 1535 1536
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.
csmall's avatar
csmall committed
1537

1538
Here is an example of the contents of\fI /etc/toprc\fR:
csmall's avatar
csmall committed
1539
   \fBs\fR         # line 1: 'secure' mode switch
1540
   \fB5.0\fR       # line 2: 'delay'\ \ interval in seconds
csmall's avatar
csmall committed
1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551

.\" ......................................................................
.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
csmall's avatar
csmall committed
1552
   \fR  "   \fR    # line 2: id,altscr,irixps,delay,curwin
csmall's avatar
csmall committed
1553
   \fBper ea\fR    # line a: winname,fieldscur
csmall's avatar
csmall committed
1554
   \fBwindow\fR    # line b: winflags,sortindx,maxtasks
csmall's avatar
csmall committed
1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587
   \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:
csmall's avatar
csmall committed
1588
  . provide a scheduling boost and tiny delay via:
csmall's avatar
csmall committed
1589
      nice -n -10 top -d.09
csmall's avatar
csmall committed
1590 1591
  . keep sorted column highlighting \*F to minimize
    path length
csmall's avatar
csmall committed
1592 1593
  . turn \*O reverse row highlighting for emphasis
  . try various sort columns (TIME/MEM work well),
csmall's avatar
csmall committed
1594 1595
    and normal or reverse sorts to bring the most
    active processes into view
csmall's avatar
csmall committed
1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656

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.  

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.  

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.  

.\" ......................................................................
.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
.\" ----------------------------------------------------------------------
.\" ......................................................................
csmall's avatar
csmall committed
1657 1658 1659 1660
.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.
csmall's avatar
csmall committed
1661 1662
Were it not for extensive help text and additional sort callbacks, it would
be smaller.
csmall's avatar
csmall committed
1663 1664
.Rjb 6
 Throw source carelessly at objectives, it\fI will\fR
csmall's avatar
csmall committed
1665
 produce equally careless machine instructions.
csmall's avatar
csmall committed
1666 1667 1668 1669 1670 1671
 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

csmall's avatar
csmall committed
1672
.PP
csmall's avatar
csmall committed
1673
Now, as for all those new capabilities like colors and windows and
csmall's avatar
csmall committed
1674 1675 1676 1677 1678 1679
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
csmall's avatar
csmall committed
1680
.br
csmall's avatar
csmall committed
1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721
\ \. 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...
csmall's avatar
csmall committed
1722

csmall's avatar
csmall committed
1723 1724
.\" ......................................................................
.SS 7c. Cost of Stuff
csmall's avatar
csmall committed
1725
.TP 3
csmall's avatar
csmall committed
1726
.B Colors Cost\fR \*(EM Nada (almost).
csmall's avatar
csmall committed
1727 1728
Once the terminfo strings are built (\fIat\fR and\fI during\fR a user's behest)
they are SAVED with each window's stuff.
csmall's avatar
csmall committed
1729 1730
And while there will be extra tty escape sequences transmitted because
of colors, it makes no difference which 'char *' is actually used.
csmall's avatar
csmall committed
1731

csmall's avatar
csmall committed
1732
.TP 3
csmall's avatar
csmall committed
1733
.B Highlighting Cost\fR \*(EM Nada (maybe), or blame it on Rio.
csmall's avatar
csmall committed
1734 1735
On second thought, let's blame it on the user.

csmall's avatar
csmall committed
1736 1737 1738 1739 1740 1741
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.
csmall's avatar
csmall committed
1742 1743

Sooo... hey USER \*(EM \fIdo NOT highlight COLUMNS\fR.
csmall's avatar
csmall committed
1744 1745 1746
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.
csmall's avatar
csmall committed
1747

csmall's avatar
csmall committed
1748
.TP 3
csmall's avatar
csmall committed
1749
.B Windows Cost\fR \*(EM Nada (if just 1 window).
csmall's avatar
csmall committed
1750 1751 1752
If more than 1 window, almost certainly NOT Nada so blame it on reality.
Colors are not an issue, but those sort fields are.

csmall's avatar
csmall committed
1753 1754 1755 1756
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'.
csmall's avatar
csmall committed
1757 1758 1759

Ok, not likely, so we're gonna' be doing multiple sorts.
BUT, it may not be as bad as it sounds.
csmall's avatar
csmall committed
1760
Those sorts involve\fB pointers only\fR.
csmall's avatar
csmall committed
1761 1762 1763
And,\fI that's as good as it gets\fR\ !\ \ (right Mr. N?)

.\" ......................................................................
csmall's avatar
csmall committed
1764
.SS 7d. The top Sources
csmall's avatar
csmall committed
1765
.TP 3
csmall's avatar
csmall committed
1766
.B top.h\fR
csmall's avatar
csmall committed
1767 1768 1769 1770 1771 1772
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.

csmall's avatar
csmall committed
1773
.TP 3
csmall's avatar
csmall committed
1774 1775
.B top.c\fR
Hopefully proves that source code needn't be a disorganized, misaligned MESS.
csmall's avatar
csmall committed
1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873
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
csmall's avatar
csmall committed
1874
Lastly, since SPACES (not stinkin' tabs) are SO beneficial, maybe
csmall's avatar
csmall committed
1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904
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:
1905
   Albert D\. Cahalan, <albert@users.sf.net>
csmall's avatar
csmall committed
1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930

[ 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
csmall's avatar
csmall committed
1931 1932
   ( as a means to learn Linux, can you believe it? )
   ( & he accidentally learned a little groff, too! )
csmall's avatar
csmall committed
1933 1934 1935
..

With invaluable help from:
csmall's avatar
csmall committed
1936
   Craig Small, <csmall@small.dropbear.id.au>
1937
   Albert D\. Cahalan, <albert@users.sf.net>
csmall's avatar
csmall committed
1938 1939 1940 1941 1942 1943 1944 1945 1946 1947

.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
.\" ----------------------------------------------------------------------
csmall's avatar
csmall committed
1948
.BR free (1),
csmall's avatar
csmall committed
1949
.BR ps (1),
csmall's avatar
csmall committed
1950
.BR uptime (1),
csmall's avatar
csmall committed
1951 1952
.BR vmstat (8),
.BR w (1).
csmall's avatar
csmall committed
1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980


.\" ----------------------------------------------------------------------
.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.
1981
.CCend
csmall's avatar
csmall committed
1982
.
csmall's avatar
csmall committed
1983 1984
.\" end: active doc ||||||||||||||||||||||||||||||||||||||||||||||||||
.\" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
csmall's avatar
csmall committed
1985

csmall's avatar
csmall committed
1986

csmall's avatar
csmall committed
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029