.TH QPS 1 "Sept 30 1999"
qps \- Visual Process Manager
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
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
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.
.I 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
.I 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
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
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
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
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.
.I 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
table (Linux only) shows the currently used TCP and UDP sockets. If
.I Host Name Lookup
is checked in the
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).
.I 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).
table shows the process's open files. In Linux 2.0.x, the files
are given on the form [\c
are the device major/minor numbers in hexadecimal.
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.)
.I Find Parent
.I Find Children
will select the parent/children of the selected processes, and center the
table on the first of them.
.I Find Descendants
will select the tree of all children of the selected processes.
.I Include Child Times
is selected in the
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
.I 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:
with the PID (Process ID) of the selected process
with the short command name of the process
with the complete command line of the process
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).
.SH KEYBOARD ACCELERATORS
(valid in most contexts)
Close the active window (except the main window)
.B "Q, Meta-Q"
Force an update of the displayed tables.
.RI \-display \ display
sets the X display (default is $DISPLAY)
.RI \-geometry \ geometry
sets the geometry of the main window of qps
.RI \-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.
.RI \-foreground \ color
sets the default foreground color. This has limited use as well.
.RI \-title \ title
sets the application title (caption).
.RI \-style \ style
sets the application GUI style. Possible styles are
(If you are using Qt 2.x, the styles
are also available.)
.RI \-font \ font
sets the application font
starts the application iconified.
prints the version of qps and the Qt library, and exits.
prints a summary of command-line options and exits.
QPS_COLORS contains color specifications of comma-separated
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,
is an X11 color name, either a symbolic name like "salmon" or an RGB color
.ta \w'$HOME/.qps-settings\ \ \ 'u
/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)
.SH SEE ALSO
ps(1), top(1), kill(1), free(1), renice(8), proc(5), sched_setscheduler(2)
Mattias Engdegard (email@example.com)
qps is free software and may be redistributed under certain
conditions. See the GNU General Public License for details.
qps is too big and too slow.
The %CPU number isn't accurate at very short update intervals due to
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.