sync to Jim version Wi
This commit is contained in:
parent
d32861b68f
commit
6744d6ac74
492
top.1
492
top.1
@ -79,7 +79,7 @@
|
|||||||
\# - hey, these two ain't too shabby, either
|
\# - hey, these two ain't too shabby, either
|
||||||
. ds Us this\ \*(Me
|
. ds Us this\ \*(Me
|
||||||
. ds US \fBthis\fR\ \*(Me
|
. ds US \fBthis\fR\ \*(Me
|
||||||
\# - other misc strings
|
\# - other misc strings for consistent usage
|
||||||
. ds F \fIOff\fR
|
. ds F \fIOff\fR
|
||||||
. ds O \fIOn\fR
|
. ds O \fIOn\fR
|
||||||
.
|
.
|
||||||
@ -97,8 +97,14 @@
|
|||||||
. ds PU CPU
|
. ds PU CPU
|
||||||
. ds Pu cpu
|
. ds Pu cpu
|
||||||
. ds SA summary area
|
. ds SA summary area
|
||||||
. ds TD task display
|
|
||||||
. ds TA task area
|
. ds TA task area
|
||||||
|
. ds TD task display
|
||||||
|
. ds TW task window
|
||||||
|
\# - xref's that depend on commands or topic names
|
||||||
|
. ds XC See the
|
||||||
|
. ds Xc see the
|
||||||
|
. ds XT See topic
|
||||||
|
. ds Xt see topic
|
||||||
.
|
.
|
||||||
.\" //////////////////////////////////////////////////////////////////////
|
.\" //////////////////////////////////////////////////////////////////////
|
||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
@ -109,7 +115,7 @@
|
|||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
top \- display Linux processes
|
top \- display Linux tasks
|
||||||
|
|
||||||
|
|
||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
@ -136,8 +142,8 @@ manipulation\fR as well as a much more extensive interface for personal\fB
|
|||||||
configuration\fR \*(EM encompassing every aspect of its operation.
|
configuration\fR \*(EM encompassing every aspect of its operation.
|
||||||
And while \*(ME is referred to throughout this document, you are free
|
And while \*(ME is referred to throughout this document, you are free
|
||||||
to name the program anything you wish.
|
to name the program anything you wish.
|
||||||
That new name, possibly an alias, will then be reflected on several
|
That new name, possibly an alias, will then be reflected on \*(Me's display
|
||||||
interactive screens and used when reading and writing \*(CFs.
|
and used when reading and writing a \*(CF.
|
||||||
|
|
||||||
|
|
||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
@ -153,19 +159,21 @@ Details regarding their exploitation will be covered in later sections.
|
|||||||
.SS Expanded Configurable Display Support
|
.SS Expanded Configurable Display Support
|
||||||
.New
|
.New
|
||||||
In an SMP environment, you can choose between a\fB summary\fR display or
|
In an SMP environment, you can choose between a\fB summary\fR display or
|
||||||
you may display\fB each \*(Pu\fR separately.
|
you may show\fB each \*(Pu\fR separately.
|
||||||
This could be an important provision for a massively-parallel machine, where
|
This could be an important provision for a massively-parallel machine, where
|
||||||
screen height is insufficient to simultaneously accommodate all \*(Pu
|
screen height is insufficient to simultaneously accommodate all \*(Pu
|
||||||
states\fI plus\fR a \*(TD.
|
states plus a meaningful \*(TD.
|
||||||
|
|
||||||
.New
|
.New
|
||||||
There are new fields and new sort options.
|
There are new fields.
|
||||||
And with \*(Us, any sort column can be\fB instantly reversed\fR.
|
With \*(Us,\fB any\fR field is selectable for sorting and your sorted
|
||||||
|
column can be\fB instantly reversed\fR.
|
||||||
|
|
||||||
.New
|
.New
|
||||||
You may optionally apply 2 distinct types of\fB highlighting\fR to
|
You may optionally apply 2 distinct types of\fB highlighting\fR to
|
||||||
running\fB tasks\fR and/or\fB sorted columns\fR.
|
running\fB tasks\fR and/or\fB sorted columns\fR.
|
||||||
With \*(Us, you'll be able to spot running tasks instantly.
|
With \*(Us, you'll be able to instantly spot running tasks and always
|
||||||
|
know the current sort field.
|
||||||
|
|
||||||
.New
|
.New
|
||||||
While you could continue to use the more familiar (and boring)\fB
|
While you could continue to use the more familiar (and boring)\fB
|
||||||
@ -207,9 +215,11 @@ then \*O again later!!
|
|||||||
.New
|
.New
|
||||||
Many Field/Column names have been changed to make them more intuitive,
|
Many Field/Column names have been changed to make them more intuitive,
|
||||||
more self-descriptive.
|
more self-descriptive.
|
||||||
|
And with \*(Us you won't be fooled with field choices that are "not yet
|
||||||
|
implemented".
|
||||||
|
|
||||||
.New
|
.New
|
||||||
Task memory stats are more meaningful\fI and\fR more accurate\fR.
|
Task memory statistics are more meaningful\fI and\fR more accurate\fR.
|
||||||
|
|
||||||
.New
|
.New
|
||||||
You'll finally have complete\fB display integrity\fR regardless of field
|
You'll finally have complete\fB display integrity\fR regardless of field
|
||||||
@ -347,8 +357,7 @@ command line\fR \*(EM a subject soon to be dealt with.
|
|||||||
'b' - Bold hilite On\ \ (not 'reverse')
|
'b' - Bold hilite On\ \ (not 'reverse')
|
||||||
* 'c' - Command line \fBOff\fR (name, not cmdline)
|
* 'c' - Command line \fBOff\fR (name, not cmdline)
|
||||||
* 'i' - Idle tasks On\ \ (show all tasks)
|
* 'i' - Idle tasks On\ \ (show all tasks)
|
||||||
'P' - Sort on PIDs
|
'R' - Reverse sort On\ \ (sort pids high-to-low)
|
||||||
'R' - Reverse sort On\ \ (high-to-low)
|
|
||||||
* 'S' - Cumulative time \fBOff\fR (exclude dead child)
|
* 'S' - Cumulative time \fBOff\fR (exclude dead child)
|
||||||
'x' - Column hilite \fBOff\fR\ (no, sort field)
|
'x' - Column hilite \fBOff\fR\ (no, sort field)
|
||||||
'y' - Row hilite On\ \ (yes, running tasks)
|
'y' - Row hilite On\ \ (yes, running tasks)
|
||||||
@ -434,32 +443,32 @@ Output is plain text suitable for any dumb terminal.
|
|||||||
Starts \*(Me with the last remembered '\fBc\fR' state reversed.
|
Starts \*(Me with the last remembered '\fBc\fR' state reversed.
|
||||||
Thus, if \*(Me was displaying command lines, now that field will show program
|
Thus, if \*(Me was displaying command lines, now that field will show program
|
||||||
names, and visa versa.
|
names, and visa versa.
|
||||||
See also the 'c' \*(CI.
|
\*(XC 'c' \*(CI for additional information.
|
||||||
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\-\fBd\fR :\fB Delay time\fR interval as:\ \ \fB-d ss.tt\fR (\fIseconds\fR.\fItenths\fR)
|
\-\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
|
Specifies the delay between screen updates, and overrides the corresponding
|
||||||
value in one's personal \*(CF or the startup default.
|
value in one's personal \*(CF or the startup default.
|
||||||
Later this can be changed with the 's' or 'd' \*(CIs.
|
Later this can be changed with the 'd' or 's' \*(CIs.
|
||||||
|
|
||||||
In all cases, however, such changes are\fI prohibited\fR if \*(Me is running
|
In all cases, however, such changes are\fI prohibited\fR if \*(Me is running
|
||||||
in 'Secure mode',\fI except for root\fR and\fI excluding\fR the 's'
|
in 'Secure mode', except for root and excluding\fR the 's' \*(CO, documented
|
||||||
\*(CO, documented later in this section.
|
later in this section.
|
||||||
See also 'Secure mode' in section 5. FILES.
|
For additional information on 'Secure mode'
|
||||||
|
\*(Xt 5a. SYSTEM Configuration File.
|
||||||
|
|
||||||
Fractional seconds will be honored.
|
Fractional seconds are honored, but a negative number is not allowed.
|
||||||
But if you start \*(Me with a delay of anything less than 1 second, and you
|
If you set the delay to anything less than 1 second, and you expect \*(Me
|
||||||
expect him to do a proper job of it, then you really owe him a\fB scheduling
|
to do a proper job of it, then you really owe him a\fB scheduling boost\fR.
|
||||||
boost\fR.
|
|
||||||
So please renice him using \*(Me's own 'r' \*(CI or more directly with
|
So please renice him using \*(Me's own 'r' \*(CI or more directly with
|
||||||
something like the following:
|
something like the following:
|
||||||
nice -n-10 top -d.1
|
nice -n-10 top -d.1
|
||||||
|
|
||||||
With the ability to highlight\fB running\fR tasks, \*(Us will then produce
|
With the ability to highlight\fB running\fR tasks, \*(Us will then produce
|
||||||
an amazing display.
|
an amazing display.
|
||||||
One representing the results of the kernel's \fB previously unseen\fR
|
One representing the results of the kernel's\fB previously unseen\fR
|
||||||
scheduling efforts.
|
scheduling efforts.
|
||||||
You will be surprised, guaranteed.
|
You may be surprised.
|
||||||
.Rjb 2
|
.Rjb 2
|
||||||
( but try not to waste too many \*(Pu cycles )
|
( but try not to waste too many \*(Pu cycles )
|
||||||
( with such sub-second delays & refreshes! )
|
( with such sub-second delays & refreshes! )
|
||||||
@ -474,7 +483,6 @@ Show library version and the usage prompt, then quit.
|
|||||||
Starts \*(Me with the last remembered '\fBi\fR' state reversed.
|
Starts \*(Me with the last remembered '\fBi\fR' state reversed.
|
||||||
When this toggle is \*F, tasks that \fBare\fR idled or zombied
|
When this toggle is \*F, tasks that \fBare\fR idled or zombied
|
||||||
will\fB not\fR be displayed.
|
will\fB not\fR be displayed.
|
||||||
See also the 'i' \*(CI.
|
|
||||||
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\-\fBn\fR :\fB Number of iterations\fR limit as:\ \ \fB -n number\fR
|
\-\fBn\fR :\fB Number of iterations\fR limit as:\ \ \fB -n number\fR
|
||||||
@ -500,13 +508,6 @@ This is a \*(CO \fBonly\fR.
|
|||||||
And should you wish to return to normal operation, it is not necessary
|
And should you wish to return to normal operation, it is not necessary
|
||||||
to quit and and restart \*(Us \*(EM just issue the '=' \*(CI.
|
to quit and and restart \*(Us \*(EM just issue the '=' \*(CI.
|
||||||
|
|
||||||
.TP 5
|
|
||||||
\-\fBS\fR :\fB Cumulative time mode\fR toggle
|
|
||||||
Starts \*(Me with the last remembered '\fBS\fR' state reversed.
|
|
||||||
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
|
||||||
time that\fB it\fR and its\fB dead children\fR has used.
|
|
||||||
See also the 'S' \*(CI.
|
|
||||||
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\-\fBs\fR :\fB Secure mode\fR operation
|
\-\fBs\fR :\fB Secure mode\fR operation
|
||||||
Starts \*(Me with \fBsecure mode forced\fR, even for root.
|
Starts \*(Me with \fBsecure mode forced\fR, even for root.
|
||||||
@ -526,6 +527,13 @@ Don't bother trying that precise command line with your old top
|
|||||||
\*(EM he'll completely overlook that 's' option because
|
\*(EM he'll completely overlook that 's' option because
|
||||||
he-sees-poorly-but-won't-wear-glasses.
|
he-sees-poorly-but-won't-wear-glasses.
|
||||||
|
|
||||||
|
.TP 5
|
||||||
|
\-\fBS\fR :\fB Cumulative time mode\fR toggle
|
||||||
|
Starts \*(Me with the last remembered '\fBS\fR' state reversed.
|
||||||
|
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
||||||
|
time that it\fB and\fR its dead children has used.
|
||||||
|
\*(XC 'S' \*(CI for additional information regarding this mode.
|
||||||
|
|
||||||
.TP 5
|
.TP 5
|
||||||
\-\fBv\fR :\fB Version\fR
|
\-\fBv\fR :\fB Version\fR
|
||||||
Show library version and the usage prompt, then quit.
|
Show library version and the usage prompt, then quit.
|
||||||
@ -541,53 +549,58 @@ Listed below are \*(Us's\fB available\fR fields.
|
|||||||
They are always associated with the letter shown, regardless of the position
|
They are always associated with the letter shown, regardless of the position
|
||||||
you may have established for them with the 'o' (Order fields) \*(CI.
|
you may have established for them with the 'o' (Order fields) \*(CI.
|
||||||
|
|
||||||
Those fields shown with an \*(AS are selectable as\fB sort fields\fR,
|
Any field is selectable as the\fB sort field\fR, and you control whether they
|
||||||
and you control whether they are sorted high-to-low or low-to-high
|
are sorted high-to-low or low-to-high.
|
||||||
(see the 'R' \*(CI).
|
For additional information on sort provisions \*(Xt 3c. TASK Display Commands.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ a:\fB PID\fR \*(EM Process Id\fR
|
a:\fB PID\fR \*(EM Process Id\fR
|
||||||
The task's unique process ID, which periodically wraps at 32767,
|
The task's unique process ID, which periodically wraps at 32767,
|
||||||
though never restarting at zero.
|
though never restarting at zero.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ b:\fB PPID\fR \*(EM Parent Process Pid\fR
|
b:\fB PPID\fR \*(EM Parent Process Pid\fR
|
||||||
The process ID of a task's parent.
|
The process ID of a task's parent.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ c:\fB UID\fR \*(EM User Id\fR
|
c:\fB PGID\fR \*(EM Process Group Id\fR
|
||||||
|
The group to which a task belongs which in turn is part of job control.
|
||||||
|
There is one process group per pipeline.
|
||||||
|
|
||||||
|
.TP 3
|
||||||
|
d:\fB UID\fR \*(EM User Id\fR
|
||||||
The user ID of the task's owner.
|
The user ID of the task's owner.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ d:\fB USER\fR \*(EM User Name
|
e:\fB USER\fR \*(EM User Name
|
||||||
The user name of the task's owner.
|
The user name of the task's owner.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ e:\fB GROUP\fR \*(EM Group Name
|
f:\fB GROUP\fR \*(EM Group Name
|
||||||
The group name of the task's owner.
|
The group name of the task's owner.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ f:\fB TTY\fR \*(EM Controlling Tty
|
g:\fB TTY\fR \*(EM Controlling Tty
|
||||||
The name of the controlling terminal.
|
The name of the controlling terminal.
|
||||||
This is usually the\fB device\fR (serial port, pty, etc.) from which the
|
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.
|
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
|
However, a task need\fI not\fR be associated with a terminal, in which case
|
||||||
you'll see '\fB?\fR' displayed.
|
you'll see '\fB?\fR' displayed.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ g:\fB PR\fR \*(EM Priority
|
h:\fB PR\fR \*(EM Priority
|
||||||
The priority of the task.
|
The priority of the task.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ h:\fB NI\fR \*(EM Nice value
|
i:\fB NI\fR \*(EM Nice value
|
||||||
The nice value of the task.
|
The nice value of the task.
|
||||||
A\fI negative\fR nice value means\fB higher priority\fR, whereas a\fI
|
A\fI negative\fR nice value means\fB higher priority\fR, whereas a\fI
|
||||||
positive\fR nice value means\fB lower priority\fR.
|
positive\fR nice value means\fB lower priority\fR.
|
||||||
Zero in this field simply means priority will not be adjusted in determining a
|
Zero in this field simply means priority will not be adjusted in determining a
|
||||||
task's dispatchability.
|
task's dispatchability.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ i:\fB #C\fR \*(EM Last used \*(PU (SMP)
|
j:\fB #C\fR \*(EM Last used \*(PU (SMP)
|
||||||
A number representing the last used processor.
|
A number representing the last used processor.
|
||||||
In a true SMP environment this will likely change frequently since the kernel
|
In a true SMP environment this will likely change frequently since the kernel
|
||||||
intentionally uses weak affinity.
|
intentionally uses weak affinity.
|
||||||
@ -595,8 +608,8 @@ 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
|
processes to change \*(PUs more often (because of the extra demand for
|
||||||
\*(Pu time).
|
\*(Pu time).
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ j:\fB %CPU\fR \*(EM \*(PU usage
|
k:\fB %CPU\fR \*(EM \*(PU usage
|
||||||
The task's share of the elapsed \*(PU time since the last screen update, expressed
|
The task's share of the elapsed \*(PU time since the last screen update, expressed
|
||||||
as a percentage of total \*(PU time.
|
as a percentage of total \*(PU time.
|
||||||
In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
|
In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
|
||||||
@ -604,81 +617,88 @@ In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
|
|||||||
number of \*(PUs.
|
number of \*(PUs.
|
||||||
You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
|
You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ k:\fB TIME\fR \*(EM \*(PU Time
|
l:\fB TIME\fR \*(EM \*(PU Time
|
||||||
Total \*(PU time the task has used since it started.
|
Total \*(PU time the task has used since it started.
|
||||||
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
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.
|
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.
|
You toggle 'Cumulative mode' with 'S', which is a \*(CO and an \*(CI.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ l:\fB TIME+\fR \*(EM \*(PU Time, hundredths
|
m:\fB TIME+\fR \*(EM \*(PU Time, hundredths
|
||||||
The same as 'TIME', but reflecting more granularity through hundredths of
|
The same as 'TIME', but reflecting more granularity through hundredths of
|
||||||
a second.
|
a second.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ m:\fB %MEM\fR \*(EM Memory usage (RES)
|
n:\fB %MEM\fR \*(EM Memory usage (RES)
|
||||||
A task's currently used share of available \*(MP.
|
A task's currently used share of available \*(MP.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ n:\fB VIRT\fR \*(EM Virtual Image (kb)
|
o:\fB VIRT\fR \*(EM Virtual Image (kb)
|
||||||
The total amount of \*(MV used by the task.
|
The total amount of \*(MV used by the task.
|
||||||
It includes all code, data and shared libraries plus pages that have been
|
It includes all code, data and shared libraries plus pages that have been
|
||||||
swapped out.
|
swapped out.
|
||||||
|
|
||||||
VIRT = SWAP + RES.
|
VIRT = SWAP + RES.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ o:\fB SWAP\fR \*(EM Swapped size (kb)
|
p:\fB SWAP\fR \*(EM Swapped size (kb)
|
||||||
The swapped out portion of a task's total \*(MV image.
|
The swapped out portion of a task's total \*(MV image.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
*\ p:\fB RES\fR \*(EM Resident size (kb)
|
q:\fB RES\fR \*(EM Resident size (kb)
|
||||||
The non-swapped \*(MP a task has used.
|
The non-swapped \*(MP a task has used.
|
||||||
|
|
||||||
RES = CODE + DATA.
|
RES = CODE + DATA.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ q:\fB CODE\fR \*(EM Code size (kb)
|
r:\fB CODE\fR \*(EM Code size (kb)
|
||||||
The amount of \*(MP devoted to executable code, also known as
|
The amount of \*(MP devoted to executable code, also known as
|
||||||
the 'text resident set' size or TRS.
|
the 'text resident set' size or TRS.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ r:\fB DATA\fR \*(EM Data+Stack size (kb)
|
s:\fB DATA\fR \*(EM Data+Stack size (kb)
|
||||||
The amount of \*(MP devoted to other than executable code, also known as
|
The amount of \*(MP devoted to other than executable code, also known as
|
||||||
the 'data resident set' size or DRS.
|
the 'data resident set' size or DRS.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ s:\fB SHR\fR \*(EM Shared Mem size (kb)
|
t:\fB SHR\fR \*(EM Shared Mem size (kb)
|
||||||
The amount of \*(MS used by a task.
|
The amount of \*(MS used by a task.
|
||||||
It simply reflects memory that could be potentially shared with
|
It simply reflects memory that could be potentially shared with
|
||||||
other processes.
|
other processes.
|
||||||
It is not an assurance that such memory is actually being shared.
|
It is not an assurance that such memory is actually being shared.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ t:\fB nFLT\fR \*(EM Page Fault count
|
u:\fB nFLT\fR \*(EM Page Fault count
|
||||||
The number of\fB major\fR page faults that have occurred for a task.
|
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
|
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.
|
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
|
A\fB major\fR page fault is when\fI disk access\fR is involved in making that
|
||||||
page available.
|
page available.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ u:\fB nDRT\fR \*(EM Dirty Pages count
|
v:\fB nDRT\fR \*(EM Dirty Pages count
|
||||||
The number of pages that have been\fB modified\fR since they were last
|
The number of pages that have been\fB modified\fR since they were last
|
||||||
written to disk.
|
written to disk.
|
||||||
Dirty pages must be written to disk before the corresponding physical memory
|
Dirty pages must be written to disk before the corresponding physical memory
|
||||||
location can be used for some other virtual page.
|
location can be used for some other virtual page.
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ v:\fB S\fR \*(EM Process Status
|
w:\fB S\fR \*(EM Process Status
|
||||||
The status of the task which can be one of:
|
The status of the task which can be one of:
|
||||||
'\fBD\fR' = uninterruptible sleep '\fBR\fR' = running
|
'\fBD\fR' = uninterruptible sleep
|
||||||
'\fBS\fR' = sleeping '\fBT\fR' = stopped or traced
|
'\fBR\fR' = running
|
||||||
'\fBZ\fR' = zombies
|
'\fBS\fR' = sleeping
|
||||||
|
'\fBT\fR' = traced or stopped
|
||||||
|
'\fBZ\fR' = zombies
|
||||||
|
|
||||||
.TP 5
|
Tasks shown as running should be more properly thought of as 'ready to run'
|
||||||
*\ w:\fB Command\fR \*(EM Command\fB line\fR or Program\fB name\fR
|
\*(EM their task_struct is simply represented on Linux's run-queue.
|
||||||
|
Even without a true SMP machine you may see numerous tasks in this state,
|
||||||
|
depending on \*(Me's delay interval and nice value.
|
||||||
|
|
||||||
|
.TP 3
|
||||||
|
x:\fB Command\fR \*(EM Command\fB line\fR or Program\fB name\fR
|
||||||
Display the command line used to start a task or the name of the associated
|
Display the command line used to start a task or the name of the associated
|
||||||
program.
|
program.
|
||||||
You toggle between command\fI line\fR and\fI name\fR with 'c', which is both
|
You toggle between command\fI line\fR and\fI name\fR with 'c', which is both
|
||||||
@ -701,8 +721,8 @@ When displayed, this column will be allocated \fBall remaining screen width\fR
|
|||||||
to provide for the potential growth of program names into command lines!
|
to provide for the potential growth of program names into command lines!
|
||||||
.in
|
.in
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ x:\fB WCHAN\fR \*(EM Sleeping in Function
|
y:\fB WCHAN\fR \*(EM Sleeping in Function
|
||||||
Depending on the availability of\fI /boot/System.map\fR (the kernel link map)
|
Depending on the availability of\fI /boot/System.map\fR (the kernel link map)
|
||||||
or\fI /boot/psdatabase\fR, this field will show the \fB name\fR or
|
or\fI /boot/psdatabase\fR, this field will show the \fB name\fR or
|
||||||
the\fB address\fR of the kernel function in which the task is
|
the\fB address\fR of the kernel function in which the task is
|
||||||
@ -716,8 +736,8 @@ over 700Kb.
|
|||||||
Your only means of reducing that overhead will be to stop and restart \*(Me.
|
Your only means of reducing that overhead will be to stop and restart \*(Me.
|
||||||
.in
|
.in
|
||||||
|
|
||||||
.TP 5
|
.TP 3
|
||||||
\ \ y:\fB Flags\fR \*(EM Task Flags
|
z:\fB Flags\fR \*(EM Task Flags
|
||||||
This column represents the task's current scheduling flags which \*(Us
|
This column represents the task's current scheduling flags which \*(Us
|
||||||
expresses in hexadecimal notation, but with zeros suppressed.
|
expresses in hexadecimal notation, but with zeros suppressed.
|
||||||
These flags are officially documented in <sched.h>.
|
These flags are officially documented in <sched.h>.
|
||||||
@ -735,7 +755,7 @@ Here is a sample\fB fields string\fR from one of \*(Us's four windows/field
|
|||||||
groups and an explanation of the conventions used:
|
groups and an explanation of the conventions used:
|
||||||
.Jbu
|
.Jbu
|
||||||
Sample fields string:
|
Sample fields string:
|
||||||
\fIAMNOPQRSTUWbcdefiklxyVGHJ\fR
|
\fIANOPQRSTUVXbcdefgjlmyzWHIK\fR
|
||||||
.Jbu
|
.Jbu
|
||||||
The order of displayed fields corresponds to the order of the letters
|
The order of displayed fields corresponds to the order of the letters
|
||||||
in that string.
|
in that string.
|
||||||
@ -744,11 +764,11 @@ 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).
|
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:
|
This will also be indicated by a leading \*(AS, as in this excerpt:
|
||||||
\fR...
|
\fR...
|
||||||
\fR* J: %CPU = CPU usage
|
\fB* K: %CPU = CPU usage
|
||||||
\fR k: TIME = CPU Time
|
\fR l: TIME = CPU Time
|
||||||
\fR l: TIME+ = CPU Time, hundredths
|
\fR m: TIME+ = CPU Time, hundredths
|
||||||
\fR* M: %MEM = Memory usage (RES)
|
\fB* N: %MEM = Memory usage (RES)
|
||||||
\fR* N: VIRT = Virtual Image (kb)
|
\fB* O: VIRT = Virtual Image (kb)
|
||||||
\fR...
|
\fR...
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
@ -771,28 +791,37 @@ Some commands appear more than once \*(EM their meaning or scope may vary
|
|||||||
depending on the context in which they are issued.
|
depending on the context in which they are issued.
|
||||||
|
|
||||||
3a.\fI GLOBAL_Commands\fR
|
3a.\fI GLOBAL_Commands\fR
|
||||||
?, ^L, <Sp>, =, A, d, F, h, O, I, k, Q, r, s, W, Z
|
<Ret>, <Sp> ?, =, A, d, G, h, I, k, Q, r, s, W, Z
|
||||||
3b.\fI SUMMARY_Area_Commands\fR
|
3b.\fI SUMMARY_Area_Commands\fR
|
||||||
l, m, t, 1
|
l, m, t, 1
|
||||||
3c.\fI TASK_Area_Commands\fR
|
3c.\fI TASK_Area_Commands\fR
|
||||||
Appearance: b, x, y, z
|
Appearance: b, x, y, z
|
||||||
Content: c, f, S, u
|
Content: c, f, o, S, u
|
||||||
Size: i, n
|
Size: #, i, n
|
||||||
Sort Order: C, E, M, P, R, T, U, Y
|
Sorting: <, >, F, O, R
|
||||||
3d.\fI COLOR_Mapping\fR
|
3d.\fI COLOR_Mapping\fR
|
||||||
<Enter>, a, b, H, M, q, S, T, w, z, 0 - 7
|
<Ret>, a, b, H, M, q, S, T, w, z, 0 - 7
|
||||||
4b.\fI COMMANDS_for_Windows\fR
|
4b.\fI COMMANDS_for_Windows\fR
|
||||||
-, _, =, +, A, a, F, g, O, w
|
-, _, =, +, A, a, G, g, w
|
||||||
|
|
||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
.SS 3a. GLOBAL Commands
|
.SS 3a. GLOBAL Commands
|
||||||
The global \*(CIs are\fB always\fR available\fR in both \*(FM and \*(AM.
|
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
|
However, some of these \*(CIs are\fB not available\fR when running
|
||||||
in 'Secure mode'.
|
in 'Secure mode'.
|
||||||
If you wish to know in advance whether or not your \*(Me has been\fI secured\fR,
|
|
||||||
|
If you wish to know in advance whether or not your \*(Me has been secured,
|
||||||
simply ask for help and view the system summary on the second line.
|
simply ask for help and view the system summary on the second line.
|
||||||
|
|
||||||
|
.TP 7
|
||||||
|
\ \ \<\fBEnter\fR> or <\fBSpace\fR> :\fIRefresh_Display\fR
|
||||||
|
In truth, these commands do nothing, they are simply ignored.
|
||||||
|
However, they will awaken \*(Me and following receipt of any input
|
||||||
|
the entire display will be repainted within milliseconds.
|
||||||
|
|
||||||
|
If you have set a large delay interval and wish to see current status,
|
||||||
|
just use either of these keys.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
|
\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
|
||||||
There are\fB two help levels\fR available.
|
There are\fB two help levels\fR available.
|
||||||
@ -803,17 +832,6 @@ 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
|
Typing 'h' or '?' on that help screen will take you to help for those \*(CIs
|
||||||
applicable to \*(AM.
|
applicable to \*(AM.
|
||||||
|
|
||||||
.TP 7
|
|
||||||
\ \ \fB^L\fR or <\fBspace\fR> :\fIRefresh_Display\fR
|
|
||||||
In truth, all this command does is clear the screen, which itself is a
|
|
||||||
wasted effort.
|
|
||||||
Following receipt of any input a new frame is created and the entire display
|
|
||||||
will be repainted anyway within milliseconds.
|
|
||||||
This command, therefore, has no practical benefit and you can save your
|
|
||||||
keyboard for real commands.
|
|
||||||
|
|
||||||
The former top had this command, so \*(Us maintains the illusion.
|
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
|
\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
|
||||||
Removes restrictions on which tasks are shown.
|
Removes restrictions on which tasks are shown.
|
||||||
@ -827,25 +845,29 @@ When operating in \*(AM this command has a slightly broader meaning.
|
|||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
|
\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
|
||||||
This command will switch between \*(FM and \*(AM.
|
This command will switch between \*(FM and \*(AM.
|
||||||
See 4. ALTERNATE\-DISPLAY Mode and the 'F' or 'O' \*(CIs for insight into
|
\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
|
||||||
\*(CWs and field groups.
|
\*(CWs and field groups.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
|
*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
|
||||||
You will be prompted to enter the delay time, in seconds, between display
|
You will be prompted to enter the delay time, in seconds, between
|
||||||
updates.
|
display updates.
|
||||||
|
|
||||||
Fractional seconds are honored, but a negative number is not allowed.
|
Fractional seconds are honored, but a negative number is not allowed.
|
||||||
Entering 0 causes (nearly) continuous updates, with an unsatisfactory display
|
If you set the delay to anything less than 1 second, and you expect \*(Me
|
||||||
as the system and tty driver try to keep up with \*(Me's demands.
|
to do a proper job of it, then you really owe him a\fB scheduling boost\fR.
|
||||||
|
So please renice him using \*(Me's own 'r' \*(CI.
|
||||||
|
|
||||||
|
Entering 0 causes (nearly) continuous updates, with an unsatisfactory
|
||||||
|
display as the system and tty driver try to keep up with \*(Me's demands.
|
||||||
The delay value is inversely proportional to system loading,
|
The delay value is inversely proportional to system loading,
|
||||||
so set it with care.
|
so set it with care.
|
||||||
See the '-d' \*(CO for additional information on delay time.
|
|
||||||
|
|
||||||
If at any time you wish to know the current delay time, simply ask for help
|
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.
|
and view the system summary on the second line.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fIChoose_Another_Window/Field_Group\fR
|
\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
|
||||||
You will be prompted to enter a number between 1 and 4 designating the
|
You will be prompted to enter a number between 1 and 4 designating the
|
||||||
window/field group which should be made the \*(CW.
|
window/field group which should be made the \*(CW.
|
||||||
You will soon grow comfortable with these 4 windows, especially after
|
You will soon grow comfortable with these 4 windows, especially after
|
||||||
@ -887,15 +909,16 @@ favorably by the kernel.
|
|||||||
This will save all of your options and toggles plus the current
|
This will save all of your options and toggles plus the current
|
||||||
display mode and delay time.
|
display mode and delay time.
|
||||||
By issuing this command just before quitting \*(Me, you will be able restart
|
By issuing this command just before quitting \*(Me, you will be able restart
|
||||||
later in\fB exactly\fR that same state (see 5. FILES).
|
later in\fB exactly\fR that same state.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
|
\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
|
||||||
This key will take you to a separate screen where you can change the
|
This key will take you to a separate screen where you can change the
|
||||||
colors for the \*(CW, or for all windows (see 3d. COLOR Mapping).
|
colors for the \*(CW, or for all windows.
|
||||||
|
For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
|
||||||
|
|
||||||
.IP "*" 3
|
.IP "*" 3
|
||||||
The commands shown with an \*(AS are\fB not available\fR in\fI Secure mode\fR,
|
The commands shown with an \*(AS are\fB not available\fR in 'Secure mode',
|
||||||
nor will they be shown on the level-1 help screen.
|
nor will they be shown on the level-1 help screen.
|
||||||
|
|
||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
@ -905,7 +928,7 @@ They affect the beginning lines of your display and will determine the position
|
|||||||
of messages and prompts.
|
of messages and prompts.
|
||||||
|
|
||||||
These commands always impact just the \*(CW/field group.
|
These commands always impact just the \*(CW/field group.
|
||||||
See 4. ALTERNATE\-DISPLAY Mode and the 'F' or 'O' \*(CIs for insight into
|
\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
|
||||||
\*(CWs and field groups.
|
\*(CWs and field groups.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
@ -946,18 +969,18 @@ appropriate #define enabled so the command will be restricted to SMP.
|
|||||||
If the\fB entire\fR \*(SA has been toggled \*F for any window,
|
If the\fB entire\fR \*(SA has been toggled \*F for any window,
|
||||||
you would be left with just the\fB message line\fR.
|
you would be left with just the\fB message line\fR.
|
||||||
In that way, you will have maximized available task rows but (temporarily)
|
In that way, you will have maximized available task rows but (temporarily)
|
||||||
sacrificed the program name in \*(FM or the window name when
|
sacrificed the program name in \*(FM or the \*(CW name when in \*(AM.
|
||||||
entering \*(AM.
|
|
||||||
|
|
||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
.SS 3c. TASK Area Commands
|
.SS 3c. TASK Area Commands
|
||||||
The \*(TA \*(CIs are\fB always\fR available in \*(FM.
|
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
|
The \*(TA \*(CIs are\fB never available\fR in \*(AM\fI if\fR the \*(CW's
|
||||||
\*(TD has been toggled \*F (see 4. ALTERNATE\-DISPLAY Mode).
|
\*(TD has been toggled \*F (\*(Xt 4. ALTERNATE\-DISPLAY Mode).
|
||||||
|
|
||||||
|
.PP
|
||||||
.\" .........................
|
.\" .........................
|
||||||
.B APPEARANCE\fR of task window
|
.B APPEARANCE\fR of \*(TW
|
||||||
.PD 0
|
.PD 0
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
|
\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
|
||||||
@ -966,11 +989,10 @@ Further, it will only be available when at least one of those toggles is \*O.
|
|||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
|
\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
|
||||||
This \*(Me hopes that you always run with 'column highlight' \*F,
|
You probably don't need a constant visual reminder of your chosen sort
|
||||||
due to the cost in pathlength (see 7. NOTES and Rantings).
|
field and \*(Us hopes that you always run with 'column highlight' \*F,
|
||||||
Besides, do you really need a constant visual reminder of your chosen sort
|
due to the cost in path-length.
|
||||||
column?
|
However, if you forget which field \*(Me is sorting it can serve as a
|
||||||
If you forget which field \*(Me is sorting, just issue the 'R' command for a
|
|
||||||
quick visual reminder.
|
quick visual reminder.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
@ -985,12 +1007,12 @@ your-brand-new-top and you'll make the program author a happy guy.
|
|||||||
\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
|
\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
|
||||||
Switches the \*(CW between your last used color scheme and the older form
|
Switches the \*(CW between your last used color scheme and the older form
|
||||||
of black-on-white or white-on-black.
|
of black-on-white or white-on-black.
|
||||||
This command will alter both the \*(SA and \*(TA but does not affect the
|
This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
|
||||||
state of the 'x', 'y' or 'b' toggles.
|
state of the 'x', 'y' or 'b' toggles.
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
.\" .........................
|
.\" .........................
|
||||||
.B CONTENT\fR of task window
|
.B CONTENT\fR of \*(TW
|
||||||
.PD 0
|
.PD 0
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
|
\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
|
||||||
@ -999,32 +1021,40 @@ is\fB currently visible\fR.
|
|||||||
Later, should that field come into view, the change you applied will be seen.
|
Later, should that field come into view, the change you applied will be seen.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBf\fR\' or \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
|
\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
|
||||||
These keys display separate screens where you can change which
|
These keys display separate screens where you can change which
|
||||||
fields are displayed and their order (see 2b. SELECTING and ORDERING Columns).
|
fields are displayed and their order.
|
||||||
|
For additional information on these \*(CIs
|
||||||
|
\*(Xt 2b. SELECTING and ORDERING Columns.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
|
\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
|
||||||
When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
|
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.
|
time that it\fB and\fR its dead children\fR has used.
|
||||||
See also the 'S' \*(CO.
|
|
||||||
|
When \*F, programs that fork into many separate tasks will appear
|
||||||
|
less demanding.
|
||||||
|
For programs like 'init' or a shell this is appropriate but for others,
|
||||||
|
like compilers, perhaps not.
|
||||||
|
Experiment with two \*(TWs sharing the same sort field but with different 'S'
|
||||||
|
states and see which representation you prefer.
|
||||||
|
|
||||||
After issuing this command, you'll be informed of the new state of this toggle.
|
After issuing this command, you'll be informed of the new state of this toggle.
|
||||||
If you wish to know in advance whether or not cumulative time mode is in
|
If you wish to know in advance whether or not 'Cumulative mode' is in
|
||||||
effect, simply ask for help and view the window summary on the second line.
|
effect, simply ask for help and view the window summary on the second line.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
|
\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
|
||||||
You will be prompted to enter the name of the user to display.
|
You will be prompted to enter the name of the user to display.
|
||||||
Thereafter, only tasks matching that User ID will be shown, or possibly no
|
Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
|
||||||
tasks will be shown.
|
no tasks will be shown.
|
||||||
|
|
||||||
Later, if you wish to monitor all tasks again, re-issue this command but
|
Later, if you wish to monitor all tasks again, re-issue this command but
|
||||||
just press <Enter> at the prompt, without providing a name.
|
just press <Enter> at the prompt, without providing a name.
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
.\" .........................
|
.\" .........................
|
||||||
.B SIZE\fR of task window
|
.B SIZE\fR of \*(TW
|
||||||
.PD 0
|
.PD 0
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
|
\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
|
||||||
@ -1045,49 +1075,64 @@ over the size of each currently visible \*(TD.
|
|||||||
|
|
||||||
.PP
|
.PP
|
||||||
.\" .........................
|
.\" .........................
|
||||||
.B SORT ORDER\fR of task window
|
.B SORTING\fR of \*(TW
|
||||||
.br
|
.br
|
||||||
The sort order \*(CIs will\fB always\fR be honored whether or not a field
|
.in +2
|
||||||
is\fB currently visible\fR.
|
Before using any of these sort provisions, \*(Me suggests that you
|
||||||
Later, should that field come into view, the change(s) you applied will be seen.
|
\fItemporarily\fR turn on column highlighting using the '\fBx\fR' \*(CI.
|
||||||
|
That will help ensure that the actual sort environment matches your intent.
|
||||||
|
|
||||||
|
The following \*(CIs will\fB only\fR be honored when the
|
||||||
|
current sort field is\fB visible\fR.
|
||||||
|
The sort field might\fI not\fR be visible because:
|
||||||
|
1) there is insufficient\fI Screen Width\fR
|
||||||
|
2) the 'f' \*(CI turned it \*F
|
||||||
|
.in
|
||||||
|
|
||||||
|
.TP 7
|
||||||
|
\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
|
||||||
|
Moves the sort column to the left unless the current sort field is
|
||||||
|
the first field being displayed.
|
||||||
|
|
||||||
|
.TP 7
|
||||||
|
\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
|
||||||
|
Moves the sort column to the right unless the current sort field is
|
||||||
|
the last field being displayed.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.in +2
|
||||||
|
The following \*(CIs will\fB always\fR be honored whether or not
|
||||||
|
the current sort field is visible.
|
||||||
|
.in
|
||||||
|
|
||||||
|
.TP 7
|
||||||
|
\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
|
||||||
|
These keys display a separate screen where you can change which field
|
||||||
|
is used as the sort column.
|
||||||
|
|
||||||
|
If a field is selected which was not previously being displayed, it will
|
||||||
|
be forced \*O when you return to the \*(Me display.
|
||||||
|
However, depending upon your screen width and the order of your fields,
|
||||||
|
this sort field may not be displayable.
|
||||||
|
|
||||||
|
These \*(CIs can be a convienent way to simply verify the current sort field,
|
||||||
|
when running \*(Me with column highlighting turned \*F.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
|
\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
|
||||||
Internally to \*(Me, 'normal' is 'reverse'.
|
Internally to \*(Me, 'normal' is 'reverse'.
|
||||||
.rj 1
|
.Rjb 1
|
||||||
...\fBsay what\fR?
|
...\fBsay what\fR?
|
||||||
.br
|
.Rje
|
||||||
Without 'R', \*(Me will sort fields high-to-low.
|
Without 'R', \*(Me will sort fields high-to-low.
|
||||||
.rj 1
|
.Rjb 1
|
||||||
...that's\fI reverse\fR, \*(Me's\fI normal\fR mode!
|
...that's\fI reverse\fR, \*(Me's\fI normal\fR mode!
|
||||||
|
.Rje
|
||||||
|
|
||||||
Try this:\ \ using 'R' you can\fI alternate\fR between high-to-low
|
Try this:\ \ using 'R' you can\fI alternate\fR between high-to-low
|
||||||
and low-to-high sorts.
|
and low-to-high sorts.
|
||||||
Lose no sleep over 'reverse' and 'normal', ok?
|
Lose no sleep over 'reverse' and 'normal', ok?
|
||||||
|
|
||||||
.TP 7
|
|
||||||
\ \ \fB\ 7\fR\ \ upper case letters which \fISelect_a_Sort_Column\fR:
|
|
||||||
\'\fBC\fR\'\ \ :Sort by Command\fB line\fR or program\fB name\fR,
|
|
||||||
.br
|
|
||||||
\ \ \ \ \ \ depending on the state of the 'c' toggle
|
|
||||||
.br
|
|
||||||
\'\fBE\fR\'\ \ :Sort by USER
|
|
||||||
.br
|
|
||||||
\'\fBM\fR\'\ \ :Sort by %MEM and/or RES
|
|
||||||
.br
|
|
||||||
\'\fBP\fR\'\ \ :Sort by PID
|
|
||||||
.br
|
|
||||||
\'\fBT\fR\'\ \ :Sort by TIME and/or TIME+
|
|
||||||
.br
|
|
||||||
\'\fBU\fR\'\ \ :Sort by %CPU
|
|
||||||
.br
|
|
||||||
\'\fBY\fR\'\ \ :Sort by TTY
|
|
||||||
|
|
||||||
.PP
|
|
||||||
If you forget which field \*(Me is sorting, the '\fBR\fR' or '\fBx\fR'
|
|
||||||
\*(CIs could be used for a quick visual reminder, without changing the
|
|
||||||
selected sort column.
|
|
||||||
|
|
||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
.SS 3d. COLOR Mapping
|
.SS 3d. COLOR Mapping
|
||||||
.Scr
|
.Scr
|
||||||
@ -1166,7 +1211,7 @@ windows and prosper in \*(AM.
|
|||||||
.br
|
.br
|
||||||
In \*(FM there is a single window represented by the entire screen.
|
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
|
That single window can still be\fI changed\fR to display 1 of 4 different\fB
|
||||||
field groups\fR (see the 'F' and 'O' commands, repeated below).
|
field groups\fR (\*(Xc 'G' \*(CI, repeated below).
|
||||||
|
|
||||||
Each of the 4 field groups has a unique separately configurable\fB \*(SA\fR
|
Each of the 4 field groups has a unique separately configurable\fB \*(SA\fR
|
||||||
and its own configurable\fB \*(TA\fR.
|
and its own configurable\fB \*(TA\fR.
|
||||||
@ -1200,7 +1245,7 @@ Come on, let's hear it, who ya gonna' blame, huh?
|
|||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
.SS 4b. COMMANDS for Windows
|
.SS 4b. COMMANDS for Windows
|
||||||
.TP 7
|
.TP 7
|
||||||
\ \ \'\fB-\fR\' or \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggle\fR
|
\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
|
||||||
The '-' (minus) key turns the \*(CW's \*(TD \*O and \*F.
|
The '-' (minus) key turns the \*(CW's \*(TD \*O and \*F.
|
||||||
When \*O, that \*(TA will show a minimum of the columns header you've
|
When \*O, that \*(TA will show a minimum of the columns header you've
|
||||||
established with the 'f' and 'o' commands.
|
established with the 'f' and 'o' commands.
|
||||||
@ -1214,17 +1259,20 @@ In other words, it switches between the currently visible \*(TD(s) and any
|
|||||||
If all 4 \*(TDs\fB are\fR currently visible, \*(Me is betting you will find
|
If all 4 \*(TDs\fB are\fR currently visible, \*(Me is betting you will find
|
||||||
the '_' command not terribly satisfying (inside, he'll wonder
|
the '_' command not terribly satisfying (inside, he'll wonder
|
||||||
what-kind-of-user-he's-dealing-with).
|
what-kind-of-user-he's-dealing-with).
|
||||||
|
On the other hand, if all you're interested in is the system summary, \*(Me
|
||||||
|
acknowledges this is the best means to that objective (inside, he'll wonder
|
||||||
|
how-did-this-user-become-so-very-wise).
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
*\ \'\fB=\fR\' or \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
|
*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
|
||||||
The '=' (equals) key\fB forces\fR the \*(CW's \*(TD to be visible.
|
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
|
It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
|
||||||
be active.
|
be active.
|
||||||
|
|
||||||
The \'+' (upper case equals) key does the same for\fB all\fR windows.
|
The \'+' (upper case equals) key does the same for\fB all\fR windows.
|
||||||
The four \*(TDs will reappear, nice and even, having retained any
|
The four \*(TDs will reappear, nice and even. They will also have\fB
|
||||||
customizations you had previously applied (\fIexcept\fR for the 'i'
|
retained\fR any customizations you had previously applied,\fI except\fR for
|
||||||
and 'n' commands).
|
the 'i' (idle tasks) and 'n' (max tasks) commands.
|
||||||
|
|
||||||
This is the command you'll use when your screen has somehow become a mess
|
This is the command you'll use when your screen has somehow become a mess
|
||||||
(hmmm, how-in-the-world-did-THAT-happen?).
|
(hmmm, how-in-the-world-did-THAT-happen?).
|
||||||
@ -1238,7 +1286,7 @@ Thereafter when you switch modes, you will see only the \*(TD(s) you've
|
|||||||
chosen to make visible.
|
chosen to make visible.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
*\ \'\fBa\fR\' or \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
|
*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
|
||||||
This will change the \*(CW, which in turn changes the window to which
|
This will change the \*(CW, which in turn changes the window to which
|
||||||
commands are directed.
|
commands are directed.
|
||||||
These keys act in a circular fashion so you can reach any desired \*(CW
|
These keys act in a circular fashion so you can reach any desired \*(CW
|
||||||
@ -1249,7 +1297,7 @@ whenever the \*(CW name loses its emphasis/color, that's a reminder
|
|||||||
the \*(TD is \*F and many commands will be restricted.
|
the \*(TD is \*F and many commands will be restricted.
|
||||||
|
|
||||||
.TP 7
|
.TP 7
|
||||||
*\ \'\fBF\fR\' or \'\fBO\fR\' :\fIChoose_Another_Window/Field_Group\fR
|
*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
|
||||||
You will be prompted to enter a number between 1 and 4 designating the
|
You will be prompted to enter a number between 1 and 4 designating the
|
||||||
window/field group which should be made the \*(CW.
|
window/field group which should be made the \*(CW.
|
||||||
|
|
||||||
@ -1265,8 +1313,8 @@ It does not require that the window name be visible
|
|||||||
|
|
||||||
.IP "*" 3
|
.IP "*" 3
|
||||||
The \*(CIs shown with an \*(AS have use beyond \*(AM.
|
The \*(CIs shown with an \*(AS have use beyond \*(AM.
|
||||||
\'=', 'A', 'F', 'O'\ \ are\fB always\fR available
|
\'=', 'A', 'G' are\fB always\fR available
|
||||||
\'a', 'w'\ \ act the same when\fB color mapping\fR
|
\'a', 'w' act the same when\fB color mapping\fR
|
||||||
|
|
||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
.SS 4c. EXAMPLES of Windows
|
.SS 4c. EXAMPLES of Windows
|
||||||
@ -1414,19 +1462,19 @@ empty rows...
|
|||||||
& m = lost Mem/Swap |Cpu(s) state: \fB 10.6%\fR user, \fB 0.0%\fR syst:
|
& m = lost Mem/Swap |Cpu(s) state: \fB 10.6%\fR user, \fB 0.0%\fR syst:
|
||||||
|______________________________________:
|
|______________________________________:
|
||||||
2:Job was very busy: |\fI2__PID__PPID_Command____________TIME+_\fR:
|
2:Job was very busy: |\fI2__PID__PPID_Command____________TIME+_\fR:
|
||||||
'n' cmd, w/ 7 tasks | 6 0\fB ( kreclaimd ) \fR 0:00.00:
|
'n' cmd, w/ 7 tasks | 80 1\fB ( khubd ) \fR 0:00.00:
|
||||||
'c' cmd, cmd line | 9 1\fB ( mdrecoveryd )\fR 0:00.00:
|
'c' cmd, cmd line | 6 0\fB ( kreclaimd ) \fR 0:00.00:
|
||||||
'C' cmd, sort 'c' | 80 1\fB ( khubd ) \fR 0:00.00:
|
'O' cmd, sort cmd | 9 1\fB ( mdrecoveryd )\fR 0:00.00:
|
||||||
'R' cmd, sort bkwd | 683 1\fB xinetd -stayali\fR 0:00.00:
|
'R' cmd, sort bkwd | 11358 1\fB /bin/bash/ /usr\fR 0:00.00:
|
||||||
'x' cmd, hi column | 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) | 1297 1\fB /sbin/mingetty \fR 0:00.00:
|
(when 2\fB WAS\fR current) | 683 1\fB xinetd -stayali\fR 0:00.00:
|
||||||
|\fI___836_____1_\fBlogin_--_root\fI_____0:00.00\fR:
|
|\fI___836_____1_\fBlogin_--_root\fI_____0:00.00\fR:
|
||||||
3:Mem has altered |\fI3__PID_%MEM__VIRT_SWAP__RES_CODE_DATA_\fR:
|
3:Mem has altered |\fI3__PID_%MEM__VIRT_SWAP__RES_CODE_DATA_\fR:
|
||||||
some std defaults: | 4634\fB 12.3\fR 15620 0 15m\fB 860\fR 14m :
|
some std defaults: | 4634\fB 12.3\fR 15620 0\fB 15m\fR 860 14m :
|
||||||
'y' turned Off | 7337\fB 11.3\fR 14396 92 13m\fB 36\fR 13m :
|
'y' turned Off | 7337\fB 11.3\fR 14396 92\fB 13m\fR 36 13m :
|
||||||
'x' turned On | 923\fB 10.6\fR 30544 16m 13m\fB 1120\fR 12m :
|
'x' turned On | 923\fB 10.6\fR 30544 16m\fB 13m\fR 1120 12m :
|
||||||
(when 3\fB WAS\fR current) | 991\fB 7.2\fR 9492 316 9176\fB 12\fR 9164 :
|
(when 3\fB WAS\fR current) | 991\fB 7.2\fR 9492 316\fB 9176\fR 12 9164 :
|
||||||
|\fI_7329___\fB7.0\fI__9036__140_8896___\fB36\fI_8860_\fR:
|
|\fI__7329__\fB7.0\fI__9036__140_\fB8896\fR___36_8860_\fR:
|
||||||
Huh? 4:Usr has some |\fI4_UID_USER_____GROUP____TTY________PID\fR:
|
Huh? 4:Usr has some |\fI4_UID_USER_____GROUP____TTY________PID\fR:
|
||||||
\fBblank rows\fR! ? ? ? ? | \fB 0 jtwm root pts/2 5561\fR:
|
\fBblank rows\fR! ? ? ? ? | \fB 0 jtwm root pts/2 5561\fR:
|
||||||
Aha, the 'i' command | \fB 0 root root ? 5560\fR:
|
Aha, the 'i' command | \fB 0 root root ? 5560\fR:
|
||||||
@ -1452,9 +1500,9 @@ to satisfy almost any user, don't ya think?
|
|||||||
|
|
||||||
.in +4
|
.in +4
|
||||||
\*(NT Use #3 above when you've messed up your screen beyond redemption.
|
\*(NT Use #3 above when you've messed up your screen beyond redemption.
|
||||||
All \*(TDs will\fB reappear\fR, nice and even.
|
The four \*(TDs will reappear, nice and even. They will also have\fB
|
||||||
They will also have\fB retained\fR any customizations you had previously
|
retained\fR any customizations you had previously applied,\fI except\fR for
|
||||||
applied,\fI except\fR for the 'i' (idle tasks) and 'n' (max tasks) commands!
|
the 'i' (idle tasks) and 'n' (max tasks) commands.
|
||||||
.in
|
.in
|
||||||
|
|
||||||
That's It !\ \ Piece of Cake !!\ \ Enjoy them there windows !!!\fR
|
That's It !\ \ Piece of Cake !!\ \ Enjoy them there windows !!!\fR
|
||||||
@ -1475,7 +1523,7 @@ They will\fB not\fR be able to issue the following commands (well, at least
|
|||||||
not successfully, ha ha):
|
not successfully, ha ha):
|
||||||
\fBk Kill\fR a task
|
\fBk Kill\fR a task
|
||||||
\fBr Renice\fR a task
|
\fBr Renice\fR a task
|
||||||
\fBs\fR or\fB d\fR Change\fB delay/update\fR interval
|
\fBd\fR or\fB s\fR Change\fB delay/sleep\fR interval
|
||||||
|
|
||||||
The system \*(CF is\fB not\fR created by \*(Me.
|
The system \*(CF is\fB not\fR created by \*(Me.
|
||||||
Rather,\fB you create this file manually\fR and place it in the \fI/etc\fR
|
Rather,\fB you create this file manually\fR and place it in the \fI/etc\fR
|
||||||
@ -1497,9 +1545,9 @@ Rather, use the 'W' \*(CI to create it or update it.
|
|||||||
For the benefit of those who never follow such advise, here is the
|
For the benefit of those who never follow such advise, here is the
|
||||||
general layout.
|
general layout.
|
||||||
\fBglobal\fR # line 1: a shameless advertisement
|
\fBglobal\fR # line 1: a shameless advertisement
|
||||||
\fR " \fR # line 2: id,altcsr,irixps,delay,curwin
|
\fR " \fR # line 2: id,altscr,irixps,delay,curwin
|
||||||
\fBper ea\fR # line a: winname,fieldscur
|
\fBper ea\fR # line a: winname,fieldscur
|
||||||
\fBwindow\fR # line b: winflags,sorttype,maxtasks
|
\fBwindow\fR # line b: winflags,sortindx,maxtasks
|
||||||
\fR " \fR # line c: summclr,msgsclr,headclr,taskclr
|
\fR " \fR # line c: summclr,msgsclr,headclr,taskclr
|
||||||
( and good luck with those winflags on line #b! )
|
( and good luck with those winflags on line #b! )
|
||||||
|
|
||||||
@ -1605,7 +1653,8 @@ Then ponder this:
|
|||||||
.SS 7a. The top BINARY
|
.SS 7a. The top BINARY
|
||||||
To whom it may/\fBshould\fR concern: \*(Us, even with its vastly expanded
|
To whom it may/\fBshould\fR concern: \*(Us, even with its vastly expanded
|
||||||
capabilities, is essentially the same size as the old top.
|
capabilities, is essentially the same size as the old top.
|
||||||
Were it not for extensive help text, it would be smaller.
|
Were it not for extensive help text and additional sort callbacks, it would
|
||||||
|
be smaller.
|
||||||
.Rjb 6
|
.Rjb 6
|
||||||
Throw source carelessly at objectives, it\fI will\fR
|
Throw source carelessly at objectives, it\fI will\fR
|
||||||
produce equally careless machine instructions!
|
produce equally careless machine instructions!
|
||||||
@ -1620,43 +1669,44 @@ highlighting, just what are the\fB additional\fR run-time\fB costs\fR?
|
|||||||
.br
|
.br
|
||||||
Hmmm, let's see...
|
Hmmm, let's see...
|
||||||
|
|
||||||
.TP
|
.TP 3
|
||||||
.B Colors\fR \*(EM Nada.
|
.B Colors\fR \*(EM Nada.
|
||||||
Once the terminfo strings are built (\fIat\fR and\fI during\fR a user's behest)
|
Once the terminfo strings are built (\fIat\fR and\fI during\fR a user's behest)
|
||||||
they are SAVED with each window's stuff.
|
they are SAVED with each window's stuff.
|
||||||
And while there will be a few extra tty escape sequences transmitted because
|
And while there will be a few extra tty escape sequences transmitted because
|
||||||
of colors, it makes NO difference which 'char *' is actually used.
|
of colors, it makes NO difference which 'char *' is actually used.
|
||||||
|
|
||||||
.TP
|
.TP 3
|
||||||
.B Highlighting\fR \*(EM Maybe Nada, or blame it on Rio.
|
.B Highlighting\fR \*(EM Maybe Nada, or blame it on Rio.
|
||||||
On second thought, let's blame it on the user.
|
On second thought, let's blame it on the user.
|
||||||
|
|
||||||
For\fI row\fR highlighting, there is NO extra cost (same reason as for colors).
|
For\fI row\fR highlighting, there is NO extra cost (same reason as for colors).
|
||||||
For\fI column\fR highlighting, there is a fairly\fB significant cost\fR for
|
For\fI column\fR highlighting, there is a fairly\fB significant cost\fR for
|
||||||
column transition management.
|
column transition management incurred on every \*(TD row.
|
||||||
|
|
||||||
Sooo... hey USER \*(EM \fIdo NOT highlight COLUMNS\fR.
|
Sooo... hey USER \*(EM \fIdo NOT highlight COLUMNS\fR.
|
||||||
You should already know your sort field.
|
You shouldn't need a constant visual reminder of your chosen sort field.
|
||||||
If you don't, simply press 'R' and you'll quickly be reminded through
|
However, if you forget which field \*(Me is sorting it can serve as a
|
||||||
a one-time cost.
|
quick visual reminder.
|
||||||
|
|
||||||
.TP
|
.TP 3
|
||||||
.B Windows\fR \*(EM If just 1 window, Nada.
|
.B Windows\fR \*(EM If just 1 window, Nada.
|
||||||
If more than 1 window, almost certainly NOT Nada so blame it on reality.
|
If more than 1 window, almost certainly NOT Nada so blame it on reality.
|
||||||
Colors are not an issue, but those sort fields are.
|
Colors are not an issue, but those sort fields are.
|
||||||
|
|
||||||
If we could trust the user to always select the same sort field (hey, why
|
If we could trust the user to always select the same 'c' state, 'S' state and
|
||||||
ya got multiple windows then user, huh?) AND if we can trust someone to
|
sort field (hey, why ya got multiple windows then user, huh?) AND if we can
|
||||||
recompile \*(Me with a #define enabled, then we\fB could\fR achieve 'Nada'.
|
trust someone to recompile \*(Me with a #define enabled, then we\fB could\fR
|
||||||
|
achieve 'Nada'.
|
||||||
|
|
||||||
Ok, not likely, so we're gonna' be doing multiple sorts.
|
Ok, not likely, so we're gonna' be doing multiple sorts.
|
||||||
BUT, it may not be as bad as it sounds.
|
BUT, it may not be as bad as it sounds.
|
||||||
Those sorts will involve\fB pointers only\fR!
|
Those sorts involve\fB pointers only\fR.
|
||||||
And,\fI that's as good as it gets\fR\ !\ \ (right Mr. N?)
|
And,\fI that's as good as it gets\fR\ !\ \ (right Mr. N?)
|
||||||
|
|
||||||
.\" ......................................................................
|
.\" ......................................................................
|
||||||
.SS 7b. The top SOURCES
|
.SS 7b. The top SOURCES
|
||||||
.TP
|
.TP 3
|
||||||
.B top.h\fR:
|
.B top.h\fR:
|
||||||
Unlike his predecessor, \*(Us has a proper header file.
|
Unlike his predecessor, \*(Us has a proper header file.
|
||||||
It contains ONLY declarations, NOT definitions.
|
It contains ONLY declarations, NOT definitions.
|
||||||
@ -1664,9 +1714,10 @@ And there are several conditionals present to help with further customizations
|
|||||||
and experimentation.
|
and experimentation.
|
||||||
All are \*F by default.
|
All are \*F by default.
|
||||||
|
|
||||||
.TP
|
.TP 3
|
||||||
.B top.c\fR:
|
.B top.c\fR:
|
||||||
Hopefully proves that source code needn't be a disorganized, misaligned MESS.
|
Hopefully proves that source code needn't be a disorganized,
|
||||||
|
misaligned MESS.
|
||||||
And, WHO says a source listing shouldn't occasionally make you SMILE?
|
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
|
Why, \*(Me.c even does a darn good job of following the suggestions in a
|
||||||
document hardly anybody seems to observe.
|
document hardly anybody seems to observe.
|
||||||
@ -1822,13 +1873,13 @@ Plus many other individuals contributed over the years.
|
|||||||
This entirely new and enhanced replacement was written by:
|
This entirely new and enhanced replacement was written by:
|
||||||
Jim / James C. Warner, <warnerjc@worldnet.att.net>
|
Jim / James C. Warner, <warnerjc@worldnet.att.net>
|
||||||
.ig
|
.ig
|
||||||
( as-a-means-to-learn-Linux, can you believe it? )
|
( as a means to learn Linux, can you believe it? )
|
||||||
( & he accidentally-learned-a-little-groff, too! )
|
( & he accidentally learned a little groff, too! )
|
||||||
..
|
..
|
||||||
|
|
||||||
With invaluable help from:
|
With invaluable help from:
|
||||||
Craig Small, <csmall@eye-net.com.au>
|
Craig Small, <csmall@eye-net.com.au>
|
||||||
Albert D. Cahalan, <acahalan@cs.uml.edu>
|
Albert D\. Cahalan, <acahalan@cs.uml.edu>
|
||||||
|
|
||||||
.ig
|
.ig
|
||||||
.rj 2
|
.rj 2
|
||||||
@ -1842,8 +1893,8 @@ With invaluable help from:
|
|||||||
.BR ps (1),
|
.BR ps (1),
|
||||||
.BR free (1),
|
.BR free (1),
|
||||||
.BR uptime (1),
|
.BR uptime (1),
|
||||||
.BR kill (1),
|
.BR vmstat (8),
|
||||||
.BR renice (1).
|
.BR w (1).
|
||||||
|
|
||||||
|
|
||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
@ -1877,6 +1928,7 @@ A copy of the license is included in the section entitled
|
|||||||
.\" end: active doc ||||||||||||||||||||||||||||||||||||||||||||||||||
|
.\" end: active doc ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||
.\" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
.\" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||
|
|
||||||
|
|
||||||
.ig GFDLend
|
.ig GFDLend
|
||||||
.\" ----------------------------------------------------------------------
|
.\" ----------------------------------------------------------------------
|
||||||
.SH GNU Free Documentation License
|
.SH GNU Free Documentation License
|
||||||
|
289
top.h
289
top.h
@ -30,6 +30,7 @@
|
|||||||
//#define QUIT_NORMALQ /* use 'q' to quit, not new default 'Q' */
|
//#define QUIT_NORMALQ /* use 'q' to quit, not new default 'Q' */
|
||||||
//#define SORT_SUPRESS /* *attempt* to reduce qsort overhead */
|
//#define SORT_SUPRESS /* *attempt* to reduce qsort overhead */
|
||||||
//#define TICS_64_BITS /* accommodate Linux 2.5.xx 64-bit jiffies */
|
//#define TICS_64_BITS /* accommodate Linux 2.5.xx 64-bit jiffies */
|
||||||
|
//#define UNEQUAL_SORT /* use pid's as a secondary sort key */
|
||||||
//#define USE_LIB_STA3 /* use lib status (3 ch) vs. proc_t (1 ch) */
|
//#define USE_LIB_STA3 /* use lib status (3 ch) vs. proc_t (1 ch) */
|
||||||
//#define WARN_NOT_SMP /* restrict '1' & 'I' commands to true smp */
|
//#define WARN_NOT_SMP /* restrict '1' & 'I' commands to true smp */
|
||||||
|
|
||||||
@ -72,10 +73,8 @@
|
|||||||
|
|
||||||
/*###### Some Miscellaneous Macro definitions ##########################*/
|
/*###### Some Miscellaneous Macro definitions ##########################*/
|
||||||
|
|
||||||
/* Used as return arguments to achieve normal/reversed sorts
|
/* Yield table size as 'int' */
|
||||||
in the sort callbacks */
|
#define MAXTBL(t) (int)(sizeof(t) / sizeof(t[0]))
|
||||||
#define SORT_lt ( Frame_srtflg ? 1 : -1 )
|
|
||||||
#define SORT_gt ( Frame_srtflg ? -1 : 1 )
|
|
||||||
|
|
||||||
/* Convert some proc stuff into vaules we can actually use */
|
/* Convert some proc stuff into vaules we can actually use */
|
||||||
#define BYTES_2K(n) (unsigned)( (n) >> 10 )
|
#define BYTES_2K(n) (unsigned)( (n) >> 10 )
|
||||||
@ -83,14 +82,38 @@
|
|||||||
#define PAGES_2K(n) BYTES_2K(PAGES_2B(n))
|
#define PAGES_2K(n) BYTES_2K(PAGES_2B(n))
|
||||||
#define PAGE_CNT(n) (unsigned)( (n) / Page_size )
|
#define PAGE_CNT(n) (unsigned)( (n) / Page_size )
|
||||||
|
|
||||||
/* Yield table size as 'int' */
|
/* Used as return arguments to achieve normal/reversed/unequal
|
||||||
#define MAXtbl(t) ( (int)(sizeof(t)/sizeof(t[0])) )
|
sorts in the sort callbacks */
|
||||||
|
#define SORT_lt ( Frame_srtflg ? 1 : -1 )
|
||||||
|
#define SORT_gt ( Frame_srtflg ? -1 : 1 )
|
||||||
|
#ifdef UNEQUAL_SORT
|
||||||
|
#define SORT_eq sort_P_PID(P, Q)
|
||||||
|
#else
|
||||||
|
#define SORT_eq 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Used to reference and create sort callback functions */
|
||||||
|
#define _SF(f) (QSORT_t)sort_ ## f
|
||||||
|
#define _SC_NUM1(f,n) \
|
||||||
|
static int sort_ ## f (const proc_t **P, const proc_t **Q) { \
|
||||||
|
if ( (*P)->n < (*Q)->n ) return SORT_lt; \
|
||||||
|
if ( (*P)->n > (*Q)->n ) return SORT_gt; \
|
||||||
|
return SORT_eq; }
|
||||||
|
#define _SC_NUM2(f,n1,n2) \
|
||||||
|
static int sort_ ## f (const proc_t **P, const proc_t **Q) { \
|
||||||
|
if ( ((*P)->n1 - (*P)->n2) < ((*Q)->n1 - (*Q)->n2) ) return SORT_lt; \
|
||||||
|
if ( ((*P)->n1 - (*P)->n2) > ((*Q)->n1 - (*Q)->n2) ) return SORT_gt; \
|
||||||
|
return SORT_eq; }
|
||||||
|
#define _SC_STRZ(f,s) \
|
||||||
|
static int sort_ ## f(const proc_t **P, const proc_t **Q) { \
|
||||||
|
if ( 0 > strcmp((*P)->s, (*Q)->s) ) return SORT_lt; \
|
||||||
|
if ( 0 < strcmp((*P)->s, (*Q)->s) ) return SORT_gt; \
|
||||||
|
return SORT_eq; }
|
||||||
|
|
||||||
/*###### Special Macros (debug and/or informative) #####################*/
|
/*------ Special Macros (debug and/or informative) ---------------------*/
|
||||||
|
|
||||||
/* Orderly end, with any sort of message - see fmtmk */
|
/* Orderly end, with any sort of message - see fmtmk */
|
||||||
#define debug_END(s) { \
|
#define debug_END(s) { \
|
||||||
static void std_err (const char *); \
|
static void std_err (const char *); \
|
||||||
fputs(Cap_clr_scr, stdout); \
|
fputs(Cap_clr_scr, stdout); \
|
||||||
std_err(s); \
|
std_err(s); \
|
||||||
@ -102,6 +125,9 @@
|
|||||||
|
|
||||||
/*###### Some Typedef's and Enum's #####################################*/
|
/*###### Some Typedef's and Enum's #####################################*/
|
||||||
|
|
||||||
|
/* This typedef just ensures consistent 'process flags' handling */
|
||||||
|
typedef unsigned char PFLG_t;
|
||||||
|
|
||||||
/* These typedefs attempt to ensure consistent 'ticks' handling */
|
/* These typedefs attempt to ensure consistent 'ticks' handling */
|
||||||
#ifdef TICS_64_BITS
|
#ifdef TICS_64_BITS
|
||||||
typedef unsigned long long TICS_t;
|
typedef unsigned long long TICS_t;
|
||||||
@ -111,15 +137,18 @@ typedef unsigned long TICS_t;
|
|||||||
typedef long STIC_t;
|
typedef long STIC_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Sorted columns support. */
|
||||||
|
typedef int (*QSORT_t)(const void *, const void *);
|
||||||
|
|
||||||
/* This structure consolidates the information that's used
|
/* This structure consolidates the information that's used
|
||||||
in a variety of display roles. */
|
in a variety of display roles. */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char *head; /* name for column headings + toggle/reorder fields */
|
const char *head; /* name for column headings + toggle/reorder fields */
|
||||||
const char *fmts; /* sprintf format string for field display */
|
const char *fmts; /* sprintf format string for field display */
|
||||||
const int width; /* field width, if applicable */
|
const int width; /* field width, if applicable */
|
||||||
const int scale; /* scale_num type, if applicable */
|
const int scale; /* scale_num type, if applicable */
|
||||||
const int sort; /* sort type, if applicable (used soley by mkcol) */
|
const QSORT_t sort; /* sort function */
|
||||||
const char *desc; /* description for toggle/reorder fields */
|
const char *desc; /* description for toggle/reorder fields */
|
||||||
} FTAB_t;
|
} FTAB_t;
|
||||||
|
|
||||||
/* This structure stores one piece of critical 'history'
|
/* This structure stores one piece of critical 'history'
|
||||||
@ -141,28 +170,20 @@ typedef struct {
|
|||||||
i;
|
i;
|
||||||
} CPUS_t;
|
} CPUS_t;
|
||||||
|
|
||||||
/* Sorted columns support. */
|
|
||||||
typedef int (*QSORT_t)(const void *, const void *);
|
|
||||||
enum sort {
|
|
||||||
S_CMD = 'C', S_MEM = 'M', S_TME = 'T', S_PID = 'P', S_TTY = 'Y',
|
|
||||||
S_CPU = 'U', S_USR = 'E'
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The scaling 'type' used with scale_num() -- this is how
|
/* The scaling 'type' used with scale_num() -- this is how
|
||||||
the passed number is interpreted should scaling be necessary */
|
the passed number is interpreted should scaling be necessary */
|
||||||
enum scale_num {
|
enum scale_num {
|
||||||
SK_no, SK_Kb, SK_Mb, SK_Gb
|
SK_no, SK_Kb, SK_Mb, SK_Gb
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Flags for each possible field.
|
/* Flags for each possible field */
|
||||||
At the moment 32 are supported [ see PFLAGSSIZ ] */
|
|
||||||
enum pflag {
|
enum pflag {
|
||||||
P_PID, P_PPID, P_UID, P_USER, P_GROUP, P_TTY,
|
P_PID, P_PPD, P_PGD, P_UID, P_USR, P_GRP, P_TTY,
|
||||||
P_PR, P_NI,
|
P_PRI, P_NCE,
|
||||||
P_NCPU, P_CPU, P_TIME, P_TIME2,
|
P_CPN, P_CPU, P_TME, P_TM2,
|
||||||
P_MEM, P_VIRT, P_SWAP, P_RES, P_CODE, P_DATA, P_SHR,
|
P_MEM, P_VRT, P_SWP, P_RES, P_COD, P_DAT, P_SHR,
|
||||||
P_FAULT, P_DIRTY,
|
P_FLT, P_DRT,
|
||||||
P_STA, P_CMD, P_WCHAN, P_FLAGS
|
P_STA, P_CMD, P_WCH, P_FLG
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -226,8 +247,7 @@ enum pflag {
|
|||||||
/* This structure stores configurable information for each window.
|
/* This structure stores configurable information for each window.
|
||||||
By expending a little effort in its creation and user requested
|
By expending a little effort in its creation and user requested
|
||||||
maintainence, the only real additional per frame cost of having
|
maintainence, the only real additional per frame cost of having
|
||||||
windows is a *potential* extra sort -- but that's just on ptrs!
|
windows is an extra sort -- but that's just on ptrs! */
|
||||||
*/
|
|
||||||
typedef struct win {
|
typedef struct win {
|
||||||
struct win *next, /* next window in window stack */
|
struct win *next, /* next window in window stack */
|
||||||
*prev; /* prior window in window stack */
|
*prev; /* prior window in window stack */
|
||||||
@ -239,13 +259,12 @@ typedef struct win {
|
|||||||
fieldscur [PFLAGSSIZ], /* fields displayed and ordered */
|
fieldscur [PFLAGSSIZ], /* fields displayed and ordered */
|
||||||
columnhdr [SMLBUFSIZ], /* column headings for procflags */
|
columnhdr [SMLBUFSIZ], /* column headings for procflags */
|
||||||
colusrnam [USRNAMSIZ]; /* if selected by the 'u' command */
|
colusrnam [USRNAMSIZ]; /* if selected by the 'u' command */
|
||||||
unsigned procflags [PFLAGSSIZ]; /* fieldscur subset as: int/enum */
|
PFLG_t procflags [PFLAGSSIZ], /* fieldscur subset, as enum */
|
||||||
|
sortindx; /* sort field, as a procflag */
|
||||||
int maxpflgs, /* number of procflags (upcase fieldscur) */
|
int maxpflgs, /* number of procflags (upcase fieldscur) */
|
||||||
maxtasks, /* user requested maximum, 0 equals all */
|
maxtasks, /* user requested maximum, 0 equals all */
|
||||||
maxcmdln, /* max length of a process' command line */
|
maxcmdln, /* max length of a process' command line */
|
||||||
sorttype; /* the last chosen sort field (as enum) */
|
summclr, /* color num used in summ info */
|
||||||
QSORT_t sortfunc; /* sort function for this window's tasks */
|
|
||||||
int summclr, /* color num used in summ info */
|
|
||||||
msgsclr, /* " in msgs/pmts */
|
msgsclr, /* " in msgs/pmts */
|
||||||
headclr, /* " in cols head */
|
headclr, /* " in cols head */
|
||||||
taskclr; /* " in task display */
|
taskclr; /* " in task display */
|
||||||
@ -266,16 +285,18 @@ typedef struct win {
|
|||||||
|
|
||||||
/* An rcfile 'footprint' used to invalidate existing local rcfile
|
/* An rcfile 'footprint' used to invalidate existing local rcfile
|
||||||
and the global rcfile path + name */
|
and the global rcfile path + name */
|
||||||
#define RCF_FILEID 'g'
|
#define RCF_FILEID 'i'
|
||||||
#define SYS_RCFILE "/etc/toprc"
|
#define SYS_RCFILE "/etc/toprc"
|
||||||
|
|
||||||
/* The default fields displayed and their order,
|
/* The default fields displayed and their order,
|
||||||
if nothing is specified by the loser, oops user */
|
if nothing is specified by the loser, oops user */
|
||||||
#define DEF_FIELDS "AbcDefGHiJkLMNOPqrstuVWxy"
|
#define DEF_FIELDS "AbcdEfgHIjKlMNOPQrstuvWXyz"
|
||||||
/* Pre-configured grouped fields */
|
/* Pre-configured field groupss */
|
||||||
#define JOB_FIELDS "ABWdefikqrstuxyLJMGHVNOPC"
|
#define JOB_FIELDS "ABXcefgjlrstuvyzMKNHIWOPQD"
|
||||||
#define MEM_FIELDS "AMNOPQRSTUWbcdefiklxyVGHJ"
|
#define MEM_FIELDS "ANOPQRSTUVXbcdefgjlmyzWHIK"
|
||||||
#define USR_FIELDS "CDEFABWghiknopqrstuxyLJMV"
|
#define USR_FIELDS "DEFGABXchijlopqrstuvyzMKNW"
|
||||||
|
/* Used by fields_sort, placed here for peace-of-mind */
|
||||||
|
#define NUL_FIELDS "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
|
||||||
/* These are the possible fscanf formats used in /proc/stat
|
/* These are the possible fscanf formats used in /proc/stat
|
||||||
reads during history processing. */
|
reads during history processing. */
|
||||||
@ -313,10 +334,104 @@ typedef struct win {
|
|||||||
" %8uk \02free,\03 %8uk \02cached\03\n"
|
" %8uk \02free,\03 %8uk \02cached\03\n"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Keyboard Help specially formatted string(s) --
|
||||||
|
see 'show_special' for syntax details + other cautions. */
|
||||||
|
#ifdef QUIT_NORMALQ
|
||||||
|
#define HELP_Qkey " q "
|
||||||
|
#else
|
||||||
|
#define HELP_Qkey " Q "
|
||||||
|
#endif
|
||||||
|
#define KEYS_help \
|
||||||
|
"Help for Interactive Commands\02 - %s\n" \
|
||||||
|
"Window %s\06: \01Cumulative mode \03%s\02. \01System\06: \01Delay time \03%.1f secs\02; \01Secure mode \03%s\02.\n" \
|
||||||
|
"\n" \
|
||||||
|
" l,t,m Toggle Summary: '\01l\02' load avg; '\01t\02' task/cpu stats; '\01m\02' mem info\n" \
|
||||||
|
" 1,I Toggle SMP view: '\0011\02' single/separate states; '\01I\02' Irix/Solaris mode\n" \
|
||||||
|
" Z\05 Change color mappings\n" \
|
||||||
|
"\n" \
|
||||||
|
" f,o . Fields change: '\01f\02' fields select; '\01o\02' order fields\n" \
|
||||||
|
" F or O . Fields select sort\n" \
|
||||||
|
" <,> . Move sort field: '\01<\02' next col left; '\01>\02' next col right\n" \
|
||||||
|
" R . Toggle normal/reverse sort\n" \
|
||||||
|
" c,i,S . Toggle: '\01c\02' cmd name/line; '\01i\02' idle tasks; '\01S\02' cumulative time\n" \
|
||||||
|
" x,y\05 . Toggle highlights: '\01x\02' sort field; '\01y\02' running tasks\n" \
|
||||||
|
" z,b\05 . Toggle: '\01z\02' color/mono; '\01b\02' bold/reverse (only if 'x' or 'y')\n" \
|
||||||
|
" u . Show specific user only\n" \
|
||||||
|
" n or # . Set maximum tasks displayed\n" \
|
||||||
|
" ( commands shown with '.' require a \01visible\02 task display \01window\02 ) \n" \
|
||||||
|
"\n" \
|
||||||
|
"%s" \
|
||||||
|
" W Write configuration file\n" \
|
||||||
|
HELP_Qkey "Quit\n" \
|
||||||
|
"Press '\01h\02' or '\01?\02' for help with \01Windows\02,\n" \
|
||||||
|
"any other key to continue " \
|
||||||
|
""
|
||||||
|
|
||||||
|
/* This guy goes above the 'u' help text (maybe) */
|
||||||
|
#define KEYS_help_unsecured \
|
||||||
|
" k,r Manipulate tasks: '\01k\02' kill; '\01r\02' renice\n" \
|
||||||
|
" d or s Set update interval\n" \
|
||||||
|
""
|
||||||
|
|
||||||
|
/* Fields Reorder/Toggle specially formatted string(s) --
|
||||||
|
see 'show_special' for syntax details + other cautions
|
||||||
|
note: the leading newline below serves really dumb terminals;
|
||||||
|
if there's no 'cursor_home', the screen will be a mess
|
||||||
|
but this part will still be functional. */
|
||||||
|
#define FIELDS_current \
|
||||||
|
"\n%sCurrent Fields\02: \01 %s \04 for window \01%s\06\n%s " \
|
||||||
|
""
|
||||||
|
|
||||||
|
/* Some extra explanatory text which accompanies the Fields display.
|
||||||
|
note: the newlines cannot actually be used, they just serve as
|
||||||
|
substring delimiters for the 'display_fields' routine. */
|
||||||
|
#define FIELDS_xtra \
|
||||||
|
"Flags field:\n" \
|
||||||
|
" 0x00000001 PF_ALIGNWARN\n" \
|
||||||
|
" 0x00000002 PF_STARTING\n" \
|
||||||
|
" 0x00000004 PF_EXITING\n" \
|
||||||
|
" 0x00000040 PF_FORKNOEXEC\n" \
|
||||||
|
" 0x00000100 PF_SUPERPRIV\n" \
|
||||||
|
" 0x00000200 PF_DUMPCORE\n" \
|
||||||
|
" 0x00000400 PF_SIGNALED\n" \
|
||||||
|
" 0x00000800 PF_MEMALLOC\n" \
|
||||||
|
" 0x00040000 PF_KERNTHREAD (2.5)\n" \
|
||||||
|
" 0x00100000 PF_USEDFPU (thru 2.4)\n" \
|
||||||
|
" 0x00400000 PF_ATOMICALLOC\n" \
|
||||||
|
""
|
||||||
|
|
||||||
|
/* Sort Select specially formatted string(s) --
|
||||||
|
see 'show_special' for syntax details + other cautions
|
||||||
|
note: the leading newline below serves really dumb terminals;
|
||||||
|
if there's no 'cursor_home', the screen will be a mess
|
||||||
|
but this part will still be functional. */
|
||||||
|
#define SORT_fields \
|
||||||
|
"\n%sCurrent Sort Field\02: \01 %c \04 for window \01%s\06\n%s " \
|
||||||
|
""
|
||||||
|
|
||||||
|
/* Some extra explanatory text which accompanies the Sort display.
|
||||||
|
note: the newlines cannot actually be used, they just serve as
|
||||||
|
substring delimiters for the 'display_fields' routine. */
|
||||||
|
#define SORT_xtra \
|
||||||
|
"Note1:\n" \
|
||||||
|
" If a selected sort field can't be\n" \
|
||||||
|
" shown due to screen width or your\n" \
|
||||||
|
" field order, the '<' and '>' keys\n" \
|
||||||
|
" will be unavailable until a field\n" \
|
||||||
|
" within viewable range is chosen.\n" \
|
||||||
|
"\n" \
|
||||||
|
"Note2:\n" \
|
||||||
|
" The WCHAN field will display a name\n" \
|
||||||
|
" if the System.map exists, but it is\n" \
|
||||||
|
" always sorted as an address. Thus,\n" \
|
||||||
|
" alphabetic sequence will not apply.\n" \
|
||||||
|
" ( shame on you if you choose this )\n" \
|
||||||
|
""
|
||||||
|
|
||||||
/* Colors Help specially formatted string(s) --
|
/* Colors Help specially formatted string(s) --
|
||||||
see 'show_special' for syntax details + other cautions. */
|
see 'show_special' for syntax details + other cautions. */
|
||||||
#define COLOR_help \
|
#define COLOR_help \
|
||||||
"%s%s's \01Help for color mapping\02 - %s\n" \
|
"%sHelp for color mapping\02 - %s\n" \
|
||||||
"current window: \01%s\06\n" \
|
"current window: \01%s\06\n" \
|
||||||
"\n" \
|
"\n" \
|
||||||
" color -\03 04:25:44 up 8 days, 50 min, 7 users, load average:\n" \
|
" color -\03 04:25:44 up 8 days, 50 min, 7 users, load average:\n" \
|
||||||
@ -339,78 +454,12 @@ typedef struct win {
|
|||||||
"Selected: \01target\02 \01 %c \04; \01color\02 \01 %d \04\n" \
|
"Selected: \01target\02 \01 %c \04; \01color\02 \01 %d \04\n" \
|
||||||
" press 'q' to abort changes to window '\01%s\02'\n" \
|
" press 'q' to abort changes to window '\01%s\02'\n" \
|
||||||
" press 'a' or 'w' to commit & change another, <Enter> to commit and end " \
|
" press 'a' or 'w' to commit & change another, <Enter> to commit and end " \
|
||||||
""
|
|
||||||
|
|
||||||
/* Keyboard Help specially formatted string(s) --
|
|
||||||
see 'show_special' for syntax details + other cautions. */
|
|
||||||
#ifdef QUIT_NORMALQ
|
|
||||||
#define HELP_QUITkey " q "
|
|
||||||
#else
|
|
||||||
#define HELP_QUITkey " Q "
|
|
||||||
#endif
|
|
||||||
#define KEYS_help \
|
|
||||||
"%s's - \01Help for Interactive Commands\02 - %s\n" \
|
|
||||||
"Window %s\06: \01Cumulative mode \03%s\02. \01System\06: \01Delay time \03%.1f secs\02; \01Secure mode \03%s\02.\n" \
|
|
||||||
" sp or ^L Redraw screen\n" \
|
|
||||||
" o . Rearrange current window's fields\n" \
|
|
||||||
" f . Add and remove current window's fields\n" \
|
|
||||||
" Z Change color mappings for any window\05\n" \
|
|
||||||
"\n" \
|
|
||||||
"(7 letters) . Sort: \01C\02) cmd; \01M\02) mem; \01P\02) pid; \01T\02) time; \01U\02) cpu; \01Y\02) tty; \01E\02) user\n" \
|
|
||||||
" R . Toggle normal/reverse sort for any of above\n" \
|
|
||||||
" l,t,m Toggle summary: \01l\02) load avg; \01t\02) task/cpu stats; \01m\02) mem info\n" \
|
|
||||||
" c,i,S . Toggle: \01c\02) cmd name/line; \01i\02) idle tasks; \01S\02) cumulative time\n" \
|
|
||||||
" x,y\05 . Toggle highlights: \01x\02) sort field; \01y\02) running tasks\n" \
|
|
||||||
" z,b\05 . Toggle: \01z\02) color/mono; \01b\02) bold/reverse, only if 'x' or 'y'\n" \
|
|
||||||
" 1,I Toggle SMP view:\01 1\02) single/separate states; \01I\02) Irix/Solaris mode\n" \
|
|
||||||
"%s" \
|
|
||||||
" u . Show specific user only\n" \
|
|
||||||
" # or n . Set maximum tasks displayed\n" \
|
|
||||||
" W Write configuration file\n" \
|
|
||||||
HELP_QUITkey "Quit\n" \
|
|
||||||
" ( commands shown with '.' require a \01visible\02 task display \01window\02 ) \n" \
|
|
||||||
"Press '\01h\02' or '\01?\02' for help with \01Windows\02,\n" \
|
|
||||||
"any other key to continue " \
|
|
||||||
""
|
|
||||||
|
|
||||||
/* This guy goes above the 'u' help text (maybe) */
|
|
||||||
#define KEYS_help_unsecured \
|
|
||||||
" k Kill a task\n" \
|
|
||||||
" r Renice a task\n" \
|
|
||||||
" s or d Set update interval\n" \
|
|
||||||
""
|
|
||||||
|
|
||||||
/* Fields Reorder/Toggle specially formatted string(s) --
|
|
||||||
see 'show_special' for syntax details + other cautions
|
|
||||||
note: the leading newline below serves really dumb terminals;
|
|
||||||
if there's no 'cursor_home', the screen will be a mess
|
|
||||||
but this part will still be functional. */
|
|
||||||
#define FIELDS_current \
|
|
||||||
"\n%s%s's\01 Current Fields\02: \01 %s \04 for window \01%s\06\n%s " \
|
|
||||||
""
|
|
||||||
|
|
||||||
/* Some extra explanatory text which accompanies the Fields display.
|
|
||||||
note: the newlines cannot actually be used, they just serve as
|
|
||||||
substring delimiters for the 'display_fields' routine. */
|
|
||||||
#define FIELDS_xtra \
|
|
||||||
"Flags field:\n" \
|
|
||||||
" 0x00000001 PF_ALIGNWARN\n" \
|
|
||||||
" 0x00000002 PF_STARTING\n" \
|
|
||||||
" 0x00000004 PF_EXITING\n" \
|
|
||||||
" 0x00000040 PF_FORKNOEXEC\n" \
|
|
||||||
" 0x00000100 PF_SUPERPRIV\n" \
|
|
||||||
" 0x00000200 PF_DUMPCORE\n" \
|
|
||||||
" 0x00000400 PF_SIGNALED\n" \
|
|
||||||
" 0x00000800 PF_MEMALLOC\n" \
|
|
||||||
" 0x00040000 PF_KERNTHREAD (2.5)\n" \
|
|
||||||
" 0x00100000 PF_USEDFPU (thru 2.4)\n" \
|
|
||||||
" 0x00400000 PF_ATOMICALLOC\n" \
|
|
||||||
""
|
""
|
||||||
|
|
||||||
/* Windows/Field Group Help specially formatted string(s) --
|
/* Windows/Field Group Help specially formatted string(s) --
|
||||||
see 'show_special' for syntax details + other cautions. */
|
see 'show_special' for syntax details + other cautions. */
|
||||||
#define WINDOWS_help \
|
#define WINDOWS_help \
|
||||||
"%s's \01Help for Windows / Field Groups\02 - \"Current\" = \01 %s \06\n" \
|
"Help for Windows / Field Groups\02 - \"Current\" = \01 %s \06\n" \
|
||||||
"\n" \
|
"\n" \
|
||||||
". Use multiple \01windows\02, each with separate config opts (color,fields,sort,etc)\n" \
|
". Use multiple \01windows\02, each with separate config opts (color,fields,sort,etc)\n" \
|
||||||
". The 'current' window controls the \01Summary Area\02 and responds to your \01Commands\02\n" \
|
". The 'current' window controls the \01Summary Area\02 and responds to your \01Commands\02\n" \
|
||||||
@ -421,7 +470,7 @@ typedef struct win {
|
|||||||
" a specific window with 'O' or 'F'; or\01 3\02) exiting the color mapping screen\n" \
|
" a specific window with 'O' or 'F'; or\01 3\02) exiting the color mapping screen\n" \
|
||||||
". Commands \01available anytime -------------\02\n" \
|
". Commands \01available anytime -------------\02\n" \
|
||||||
" \01A\02 . Alternate display mode toggle, show \01Single\02 / \01Multiple\02 windows\n" \
|
" \01A\02 . Alternate display mode toggle, show \01Single\02 / \01Multiple\02 windows\n" \
|
||||||
" O or F . Choose another field group and make it 'current', or change now\n" \
|
" G . Choose another field group and make it 'current', or change now\n" \
|
||||||
" by selecting a number from: \01 1\02 =%s;\01 2\02 =%s;\01 3\02 =%s; or\01 4\02 =%s\n" \
|
" by selecting a number from: \01 1\02 =%s;\01 2\02 =%s;\01 3\02 =%s; or\01 4\02 =%s\n" \
|
||||||
". Commands \01requiring\02 '\01A\02' mode\01 -------------\02\n" \
|
". Commands \01requiring\02 '\01A\02' mode\01 -------------\02\n" \
|
||||||
" g . Change the \01Name\05 of the 'current' window/field group\n" \
|
" g . Change the \01Name\05 of the 'current' window/field group\n" \
|
||||||
@ -433,7 +482,7 @@ typedef struct win {
|
|||||||
" (this also forces the \01current\02 or \01every\02 window to become visible)\n" \
|
" (this also forces the \01current\02 or \01every\02 window to become visible)\n" \
|
||||||
"\n" \
|
"\n" \
|
||||||
"In '\01A\02' mode, '\01*\04' keys are your \01essential\02 commands. Please try the '\01a\02' and '\01w\02'\n" \
|
"In '\01A\02' mode, '\01*\04' keys are your \01essential\02 commands. Please try the '\01a\02' and '\01w\02'\n" \
|
||||||
"commands plus the 'O'/'F' sub-commands NOW. Press <Enter> to make 'Current' " \
|
"commands plus the 'F' sub-commands NOW. Press <Enter> to make 'Current' " \
|
||||||
""
|
""
|
||||||
|
|
||||||
|
|
||||||
@ -442,15 +491,10 @@ typedef struct win {
|
|||||||
/* None of these are necessary when the source file is properly
|
/* None of these are necessary when the source file is properly
|
||||||
* organized -- they're here for documentation purposes !
|
* organized -- they're here for documentation purposes !
|
||||||
* Note also that functions are alphabetical within a group to aid
|
* Note also that functions are alphabetical within a group to aid
|
||||||
* source code navigation, which often influences choice of identifers. */
|
* source code navigation, which often influences the identifers. */
|
||||||
/*------ Sort callbacks ------------------------------------------------*/
|
/*------ Sort callbacks ------------------------------------------------*/
|
||||||
//atic int pid_sort (proc_t **P, proc_t **Q);
|
/* for each possible field, in the form of: */
|
||||||
//atic int sort_cmd (proc_t **P, proc_t **Q);
|
/*atic int sort_P_XXX (const proc_t **P, const proc_t **Q); */
|
||||||
//atic int sort_cpu (proc_t **P, proc_t **Q);
|
|
||||||
//atic int sort_mem (proc_t **P, proc_t **Q);
|
|
||||||
//atic int sort_tme (proc_t **P, proc_t **Q);
|
|
||||||
//atic int sort_tty (proc_t **P, proc_t **Q);
|
|
||||||
//atic int sort_usr (proc_t **P, proc_t **Q);
|
|
||||||
/*------ Tiny useful routine(s) ----------------------------------------*/
|
/*------ Tiny useful routine(s) ----------------------------------------*/
|
||||||
//atic int chin (int ech, char *buf, unsigned cnt);
|
//atic int chin (int ech, char *buf, unsigned cnt);
|
||||||
//atic const char *fmtmk (const char *fmts, ...);
|
//atic const char *fmtmk (const char *fmts, ...);
|
||||||
@ -484,14 +528,15 @@ typedef struct win {
|
|||||||
//atic void parse_args (char **args);
|
//atic void parse_args (char **args);
|
||||||
//atic void whack_terminal (void);
|
//atic void whack_terminal (void);
|
||||||
/*------ Field Selection/Ordering routines -----------------------------*/
|
/*------ Field Selection/Ordering routines -----------------------------*/
|
||||||
//atic void display_fields (void);
|
/*atic FTAB_t Fieldstab[] = { ... } */
|
||||||
|
//atic void display_fields (const char *fields, const char *xtra);
|
||||||
//atic void fields_reorder (void);
|
//atic void fields_reorder (void);
|
||||||
|
//atic void fields_sort (void);
|
||||||
//atic void fields_toggle (void);
|
//atic void fields_toggle (void);
|
||||||
/*------ Windows/Field Groups support ----------------------------------*/
|
/*------ Windows/Field Groups support ----------------------------------*/
|
||||||
//atic void win_colsheads (WIN_t *q);
|
//atic void win_colsheads (WIN_t *q);
|
||||||
//atic void win_names (WIN_t *q, const char *name);
|
//atic void win_names (WIN_t *q, const char *name);
|
||||||
//atic void win_select (int ch);
|
//atic void win_select (int ch);
|
||||||
//atic void win_sortset (WIN_t *q, const int which);
|
|
||||||
//atic int win_warn (void);
|
//atic int win_warn (void);
|
||||||
//atic void winsclr (WIN_t *q, int save);
|
//atic void winsclr (WIN_t *q, int save);
|
||||||
//atic void wins_colors (void);
|
//atic void wins_colors (void);
|
||||||
@ -503,7 +548,7 @@ typedef struct win {
|
|||||||
//atic void cpudo (FILE *fp, const char *fmt, CPUS_t *cpu, const char *pfx);
|
//atic void cpudo (FILE *fp, const char *fmt, CPUS_t *cpu, const char *pfx);
|
||||||
//atic void frame_states (proc_t **p, int show);
|
//atic void frame_states (proc_t **p, int show);
|
||||||
//atic void frame_storage (void);
|
//atic void frame_storage (void);
|
||||||
//atic void mkcol (WIN_t *q, unsigned idx, int sta, int *pad, char *buf, ...);
|
//atic void mkcol (WIN_t *q, PFLG_t idx, int sta, int *pad, char *buf, ...);
|
||||||
//atic void show_a_task (WIN_t *q, proc_t *task);
|
//atic void show_a_task (WIN_t *q, proc_t *task);
|
||||||
/*------ Main Screen routines ------------------------------------------*/
|
/*------ Main Screen routines ------------------------------------------*/
|
||||||
//atic void do_key (unsigned c);
|
//atic void do_key (unsigned c);
|
||||||
|
Loading…
Reference in New Issue
Block a user