NAME
qps - Visual Process Manager
SYNOPSIS
qps [ options ]
DESCRIPTION
qps is a monitor that displays the status of the processes currently in
existence, much like top(1) or ps(1). The user interface uses the Qt
toolkit, and most operations should be fairly intuitive.
The process list is sorted by the highlighted field. Click on another
title to change; click again to reverse the sorting order. Rearrange
the columns by dragging the titles.
Left-clicking on a process selects or deselects it. Shift-click to
select multiple processes. The PIDs of selected processes can be pasted
into other applications (this option can be disabled).
The right mouse button pops up a context menu, which duplicates some
functions from the main menu for convenience. It works both on
processes and on the column headings.
Control-clicking in the process table selects all processes with the
same displayed value in the particular column clicked in. For instance,
to select all processes owned by "joshua", keep Control pressed while
clicking on "joshua". Shift and Control together produces the expected
result.
In Tree mode, the parent-child relations between processes is shown in
a more obvious way. Click on the triangles to show or hide an entire
subtree. Sorting only affects siblings; the tree structure imposes the
global order.
To change the time-sharing priority of the selected processes, type the
new priority in the Renice... dialog. The new nice value should be in
the range -20 to 20; 0 is the default. A larger number means that the
process gets less CPU time. Only the super-user may decrease the nice
value.
The Change Scheduling... dialog allows the super-user to change the
scheduling policy of the selected processes (using Posix.1b scheduling
control). Normal processes are set to SCHED_OTHER and have static
priority 0; (soft) real-time processes have the policy SCHED_FIFO or
SCHED_RR and a static priority in the range of 1 to 99. (See
sched_setscheduler(2).) Solaris has additional scheduling policies, but
right now qps doesn’t allow setting these.
By default, the process display updates every 5 seconds. To change,
type the new update period in the Update Period... dialog. The units
min, s and ms may be used (if none, seconds are assumed). You can force
an update by pressing the space bar or clicking the Update button. qps
will consume a lot of CPU time if the update period is short or zero.
If iconified, however, qps will use very little CPU.
The USER field shows the real user ID. If the effective user ID of a
process is different from its real user ID, a plus sign (+) is appended
to the user name; if it is the super-user, an asterisk (*) is appended.
The load, CPU, memory and swap displays in the status bar can be
toggled between graphic and text representations by clicking on them,
or by settings in the Preferences... dialog. The load numbers shown
are the number of jobs in the run queue averaged over 1, 5 and 15
minutes.
The swap bar will turn red if free swap space falls below a certain
value, which can be changed in the Preferences... dialog. The number
can be entered in K, M (megabytes) or % (percent of total swap space).
The default is 10%.
On SMP (multi-CPU) machines running Solaris 2.6 or Linux 2.1.x or
later, the CPU stats will be shown for each processor in vertical mode,
and the average of all CPUs in horizontal mode.
For displaying the WCHAN field as symbols, the kernel symbol file
System.map is needed. qps will search for it in the following
locations:
/boot/System.map-RELEASE
/boot/System.map
/lib/modules/RELEASE/System.map
/usr/src/linux-RELEASE/System.map
/usr/src/linux/System.map
/usr/local/src/linux-RELEASE/System.map
/usr/local/src/linux/System.map
where RELEASE is the kernel release number, for instance "2.0.29". If
the System.map file isn’t found or unreadable, hexadecimal addresses
will be displayed instead. The prefixes "sys_" and "do_" are stripped
from the symbols before they are displayed. Under Solaris, symbolic
names are currently not supported and hexadecimal addresses will always
be shown.
The View Details menu item opens a window that shows different aspects
of the selected processes. Double-clicking on a process has the same
effect. All information is only available to the owner of the process
(and to the super-user).
The Sockets table (Linux only) shows the currently used TCP and UDP
sockets. If Host Name Lookup is checked in the Preferences dialog, a
host name lookup will be done for each IP address. This is done by a
background process but can take a while for difficult cases (but once
looked up, addresses are cached).
The Memory Maps table shows the process’s memory mappings. In Linux
2.0.x and Solaris, the file names are not given. Anonymous mappings
(allocated memory not bound to a file or device) are marked
(anonymous).
The Files table shows the process’s open files. In Linux 2.0.x, the
files are given on the form [AABB]:inode, where AA and BB are the
device major/minor numbers in hexadecimal.
The Environment table shows the process’s environment variables. Note
that this is the environment with which the process was started, not
necessarily incorporating later changes. Some processes that modify
their command line, notably sendmail(8) and ftpd(8), may use the
environment space for this, showing nonsense in this table. Clicking on
the field headings changes sorting order as usual. (On Solaris, only
the first 8K of the environment are shown. It will be fixed if it turns
out to be a limitation.)
Find Parent and Find Children will select the parent/children of the
selected processes, and center the table on the first of them. Find
Descendants will select the tree of all children of the selected
processes.
If Include Child Times is selected in the Options menu, the TIME field
will show the sum of the CPU times used by the process and all of its
children.
You can specify commands to be run on the selected processes by
bringing up the Edit Commands... dialog. The "Description" of each
command is what appears in the menu; the "Command Line" is a shell
command (executed with /bin/sh). Before the command is passed to the
shell, the following substitutions are made:
%p with the PID (Process ID) of the selected process
%c with the short command name of the process
%C with the complete command line of the process
%u with the name of the (real) owner of the process
%% with a literal ’%’.
Any other % + letter combination is removed. The command line will be
run once for each selected process (in unspecified order).
KEYBOARD ACCELERATORS
(valid in most contexts)
Meta-W Close the active window (except the main window)
Q, Meta-Q
Quit qps.
Space Force an update of the displayed tables.
Control-Z
Iconify qps.
OPTIONS
-display display
sets the X display (default is $DISPLAY)
-geometry geometry
sets the geometry of the main window of qps
-background color
sets the default background color and an application palette
(light and dark shades are calculated). This doesn’t work very
well at the moment.
-foreground color
sets the default foreground color. This has limited use as well.
-title title
sets the application title (caption).
-style style
sets the application GUI style. Possible styles are motif and
windows. (If you are using Qt 2.x, the styles cde and platinum
are also available.)
-font font
sets the application font
-iconic
starts the application iconified.
-version
prints the version of qps and the Qt library, and exits.
-help prints a summary of command-line options and exits.
ENVIRONMENT
QPS_COLORS contains color specifications of comma-separated name:value
pairs, where name is one of the following:
cpu-user, cpu-nice (Linux), cpu-sys, cpu-wait (Solaris), cpu-idle, mem-
used, mem-buff, mem-cache, mem-free, swap-used, swap-free, swap-warn,
load-bg, load-fg, load-lines, selection-bg, selection-fg
value is an X11 color name, either a symbolic name like "salmon" or an
RGB color like #c5b769.
FILES
/proc kernel information pseudo-filesystem
$HOME/.qps-settings saved settings between invocations
/etc/services port number to service name mapping (Linux)
System.map kernel symbol map for WCHAN (Linux)
SEE ALSO
ps(1), top(1), kill(1), free(1), renice(8), proc(5),
sched_setscheduler(2)
AUTHOR
Mattias Engdegard (f91-men@nada.kth.se)
LICENSE
qps is free software and may be redistributed under certain conditions.
See the GNU General Public License for details.
BUGS
qps is too big and too slow.
The %CPU number isn’t accurate at very short update intervals due to
timer granularity.
The %WCPU field isn’t recalculated when qps is iconified, so it might
take a while to readjust when the window is deiconified again.
The WCHAN field doesn’t show a function name if a process sleeps in a
location outside those in System.map (for instance, in a kernel
module), but a hex address instead. The function name can then be found
in /proc/ksyms but has to be found by hand right now.
The CPU indicator in the status bar will display nonsense in SMP
systems running Linux 2.0.x due to a kernel bug.
Adding/removing CPUs at runtime will probably confuse qps.