mirror of https://github.com/xzeldon/htop.git
532 lines
16 KiB
Groff
532 lines
16 KiB
Groff
.TH "HTOP" "1" "2020" "@PACKAGE_STRING@" "User Commands"
|
|
.SH "NAME"
|
|
htop \- interactive process viewer
|
|
.SH "SYNOPSIS"
|
|
.B htop
|
|
.RB [ \-dCFhpustvH ]
|
|
.SH "DESCRIPTION"
|
|
.B htop
|
|
is a cross-platform ncurses-based process viewer.
|
|
.LP
|
|
It is similar to
|
|
.BR top ,
|
|
but allows you to scroll vertically and horizontally, and interact using
|
|
a pointing device (mouse).
|
|
You can observe all processes running on the system, along with their
|
|
command line arguments, as well as view them in a tree format, select
|
|
multiple processes and acting on them all at once.
|
|
.LP
|
|
Tasks related to processes (killing, renicing) can be done without
|
|
entering their PIDs.
|
|
.br
|
|
.SH "COMMAND-LINE OPTIONS"
|
|
Mandatory arguments to long options are mandatory for short options too.
|
|
.TP
|
|
\fB\-d \-\-delay=DELAY\fR
|
|
Delay between updates, in tenths of seconds. If the delay value is
|
|
less than 1 it is increased to 1, i.e. 1/10 second. If the delay value
|
|
is greater than 100, it is decreased to 100, i.e. 10 seconds.
|
|
.TP
|
|
\fB\-C \-\-no-color \-\-no-colour\fR
|
|
Start
|
|
.B htop
|
|
in monochrome mode
|
|
.TP
|
|
\fB\-F \-\-filter=FILTER
|
|
Filter processes by command
|
|
.TP
|
|
\fB\-h \-\-help
|
|
Display a help message and exit
|
|
.TP
|
|
\fB\-p \-\-pid=PID,PID...\fR
|
|
Show only the given PIDs
|
|
.TP
|
|
\fB\-s \-\-sort\-key COLUMN\fR
|
|
Sort by this column (use \-\-sort\-key help for a column list)
|
|
.TP
|
|
\fB\-u \-\-user=USERNAME\fR
|
|
Show only the processes of a given user
|
|
.TP
|
|
\fB\-U \-\-no-unicode\fR
|
|
Do not use unicode but ASCII characters for graph meters
|
|
.TP
|
|
\fB\-M \-\-no-mouse\fR
|
|
Disable support of mouse control
|
|
.TP
|
|
\fB\-V \-\-version
|
|
Output version information and exit
|
|
.TP
|
|
\fB\-t \-\-tree
|
|
Show processes in tree view
|
|
.TP
|
|
\fB\-H \-\-highlight-changes=DELAY\fR
|
|
Highlight new and old processes
|
|
.SH "INTERACTIVE COMMANDS"
|
|
The following commands are supported while in
|
|
.BR htop :
|
|
.TP 5
|
|
.B Up, Alt-k
|
|
Select (highlight) the previous process in the process list. Scroll the list
|
|
if necessary.
|
|
.TP
|
|
.B Down, Alt-j
|
|
Select (highlight) the next process in the process list. Scroll the list if
|
|
necessary.
|
|
.TP
|
|
.B Left, Alt-h
|
|
Scroll the process list left.
|
|
.TP
|
|
.B Right, Alt-l
|
|
Scroll the process list right.
|
|
.TP
|
|
.B PgUp, PgDn
|
|
Scroll the process list up or down one window.
|
|
.TP
|
|
.B Home
|
|
Scroll to the top of the process list and select the first process.
|
|
.TP
|
|
.B End
|
|
Scroll to the bottom of the process list and select the last process.
|
|
.TP
|
|
.B Ctrl-A, ^
|
|
Scroll left to the beginning of the process entry (i.e. beginning of line).
|
|
.TP
|
|
.B Ctrl-E, $
|
|
Scroll right to the end of the process entry (i.e. end of line).
|
|
.TP
|
|
.B Space
|
|
Tag or untag a process. Commands that can operate on multiple processes,
|
|
like "kill", will then apply over the list of tagged processes, instead
|
|
of the currently highlighted one.
|
|
.TP
|
|
.B c
|
|
Tag the current process and its children. Commands that can operate on multiple
|
|
processes, like "kill", will then apply over the list of tagged processes,
|
|
instead of the currently highlighted one.
|
|
.TP
|
|
.B U
|
|
Untag all processes (remove all tags added with the Space or c keys).
|
|
.TP
|
|
.B s
|
|
Trace process system calls: if strace(1) is installed, pressing this key
|
|
will attach it to the currently selected process, presenting a live
|
|
update of system calls issued by the process.
|
|
.TP
|
|
.B l
|
|
Display open files for a process: if lsof(1) is installed, pressing this key
|
|
will display the list of file descriptors opened by the process.
|
|
.TP
|
|
.B w
|
|
Display the command line of the selected process in a separate screen, wrapped
|
|
onto multiple lines as needed.
|
|
.TP
|
|
.B x
|
|
Display the active file locks of the selected process in a separate screen.
|
|
.TP
|
|
.B F1, h, ?
|
|
Go to the help screen
|
|
.TP
|
|
.B F2, S
|
|
Go to the setup screen, where you can configure the meters displayed at the top
|
|
of the screen, set various display options, choose among color schemes, and
|
|
select which columns are displayed, in which order.
|
|
.TP
|
|
.B F3, /
|
|
Incrementally search the command lines of all the displayed processes. The
|
|
currently selected (highlighted) command will update as you type. While in
|
|
search mode, pressing F3 will cycle through matching occurrences.
|
|
|
|
Alternatively the search can be started by simply typing the command
|
|
you are looking for, although for the first character normal key
|
|
bindings take precedence.
|
|
.TP
|
|
.B F4, \\\\
|
|
Incremental process filtering: type in part of a process command line and
|
|
only processes whose names match will be shown. To cancel filtering,
|
|
enter the Filter option again and press Esc.
|
|
.TP
|
|
.B F5, t
|
|
Tree view: organize processes by parenthood, and layout the relations
|
|
between them as a tree. Toggling the key will switch between tree and
|
|
your previously selected sort view. Selecting a sort view will exit
|
|
tree view.
|
|
.TP
|
|
.B F6, <, >
|
|
Selects a field for sorting, also accessible through < and >.
|
|
The current sort field is indicated by a highlight in the header.
|
|
.TP
|
|
.B F7, ]
|
|
Increase the selected process's priority (subtract from 'nice' value).
|
|
This can only be done by the superuser.
|
|
.TP
|
|
.B F8, [
|
|
Decrease the selected process's priority (add to 'nice' value)
|
|
.TP
|
|
.B F9, k
|
|
"Kill" process: sends a signal which is selected in a menu, to one or a group
|
|
of processes. If processes were tagged, sends the signal to all tagged processes.
|
|
If none is tagged, sends to the currently selected process.
|
|
.TP
|
|
.B F10, q
|
|
Quit
|
|
.TP
|
|
.B I
|
|
Invert the sort order: if sort order is increasing, switch to decreasing, and
|
|
vice-versa.
|
|
.TP
|
|
.B +, \-
|
|
When in tree view mode, expand or collapse subtree. When a subtree is collapsed
|
|
a "+" sign shows to the left of the process name.
|
|
.TP
|
|
.B a (on multiprocessor machines)
|
|
Set CPU affinity: mark which CPUs a process is allowed to use.
|
|
.TP
|
|
.B u
|
|
Show only processes owned by a specified user.
|
|
.TP
|
|
.B M
|
|
Sort by memory usage (top compatibility key).
|
|
.TP
|
|
.B P
|
|
Sort by processor usage (top compatibility key).
|
|
.TP
|
|
.B T
|
|
Sort by time (top compatibility key).
|
|
.TP
|
|
.B F
|
|
"Follow" process: if the sort order causes the currently selected process
|
|
to move in the list, make the selection bar follow it. This is useful for
|
|
monitoring a process: this way, you can keep a process always visible on
|
|
screen. When a movement key is used, "follow" loses effect.
|
|
.TP
|
|
.B K
|
|
Hide kernel threads: prevent the threads belonging the kernel to be
|
|
displayed in the process list. (This is a toggle key.)
|
|
.TP
|
|
.B H
|
|
Hide user threads: on systems that represent them differently than ordinary
|
|
processes (such as recent NPTL-based systems), this can hide threads from
|
|
userspace processes in the process list. (This is a toggle key.)
|
|
.TP
|
|
.B p
|
|
Show full paths to running programs, where applicable. (This is a toggle key.)
|
|
.TP
|
|
.B Z
|
|
Pause/resume process updates.
|
|
.TP
|
|
.B m
|
|
Merge exe, comm and cmdline, where applicable. (This is a toggle key.)
|
|
.TP
|
|
.B Ctrl-L
|
|
Refresh: redraw screen and recalculate values.
|
|
.TP
|
|
.B Numbers
|
|
PID search: type in process ID and the selection highlight will be moved to it.
|
|
.PD
|
|
.SH "COLUMNS"
|
|
The following columns can display data about each process. A value of '\-' in
|
|
all the rows indicates that a column is unsupported on your system, or
|
|
currently unimplemented in
|
|
.BR htop .
|
|
The names below are the ones used in the
|
|
"Available Columns" section of the setup screen. If a different name is
|
|
shown in
|
|
.BR htop 's
|
|
main screen, it is shown below in parenthesis.
|
|
.TP 5
|
|
.B Command
|
|
The full command line of the process (i.e. program name and arguments). If the
|
|
option 'Merge exe, comm and cmdline in Command' (toggled by the 'm' key) is set,
|
|
and if readable, the executable path (/proc/[pid]/exe) and the command name
|
|
(/proc/[pid]/comm) are also shown merged with the command line.
|
|
.TP
|
|
.B Comm
|
|
The command name of the process obtained from /proc/[pid]/comm, if readable.
|
|
.TP
|
|
.B Exe
|
|
The abbreviated basename of the executable of the process, obtained from
|
|
/proc/[pid]/exe, if readable. htop is able to read this file on linux for ALL
|
|
the processes only if it has the capability CAP_SYS_PTRACE or root privileges.
|
|
.TP
|
|
.B PID
|
|
The process ID.
|
|
.TP
|
|
.B STATE (S)
|
|
The state of the process:
|
|
\fBS\fR for sleeping (idle)
|
|
\fBR\fR for running
|
|
\fBD\fR for disk sleep (uninterruptible)
|
|
\fBZ\fR for zombie (waiting for parent to read its exit status)
|
|
\fBT\fR for traced or suspended (e.g by SIGTSTP)
|
|
\fBW\fR for paging
|
|
.TP
|
|
.B PPID
|
|
The parent process ID.
|
|
.TP
|
|
.B PGRP
|
|
The process's group ID.
|
|
.TP
|
|
.B SESSION (SID)
|
|
The process's session ID.
|
|
.TP
|
|
.B TTY_NR (TTY)
|
|
The controlling terminal of the process.
|
|
.TP
|
|
.B TPGID
|
|
The process ID of the foreground process group of the controlling terminal.
|
|
.TP
|
|
.B MINFLT
|
|
The number of page faults happening in the main memory.
|
|
.TP
|
|
.B CMINFLT
|
|
The number of minor faults for the process's waited-for children (see MINFLT above).
|
|
.TP
|
|
.B MAJFLT
|
|
The number of page faults happening out of the main memory.
|
|
.TP
|
|
.B CMAJFLT
|
|
The number of major faults for the process's waited-for children (see MAJFLT above).
|
|
.TP
|
|
.B UTIME (UTIME+)
|
|
The user CPU time, which is the amount of time the process has spent executing
|
|
on the CPU in user mode (i.e. everything but system calls), measured in clock
|
|
ticks.
|
|
.TP
|
|
.B STIME (STIME+)
|
|
The system CPU time, which is the amount of time the kernel has spent
|
|
executing system calls on behalf of the process, measured in clock ticks.
|
|
.TP
|
|
.B CUTIME (CUTIME+)
|
|
The children's user CPU time, which is the amount of time the process's
|
|
waited-for children have spent executing in user mode (see UTIME above).
|
|
.TP
|
|
.B CSTIME (CSTIME+)
|
|
The children's system CPU time, which is the amount of time the kernel has spent
|
|
executing system calls on behalf of all the process's waited-for children (see
|
|
STIME above).
|
|
.TP
|
|
.B PRIORITY (PRI)
|
|
The kernel's internal priority for the process, usually just its nice value
|
|
plus twenty. Different for real-time processes.
|
|
.TP
|
|
.B NICE (NI)
|
|
The nice value of a process, from 19 (low priority) to -20 (high priority). A
|
|
high value means the process is being nice, letting others have a higher
|
|
relative priority. The usual OS permission restrictions for adjusting priority apply.
|
|
.TP
|
|
.B STARTTIME (START)
|
|
The time the process was started.
|
|
.TP
|
|
.B PROCESSOR (CPU)
|
|
The ID of the CPU the process last executed on.
|
|
.TP
|
|
.B M_VIRT (VIRT)
|
|
The size of the virtual memory of the process.
|
|
.TP
|
|
.B M_RESIDENT (RES)
|
|
The resident set size (text + data + stack) of the process (i.e. the size of the
|
|
process's used physical memory).
|
|
.TP
|
|
.B M_SHARE (SHR)
|
|
The size of the process's shared pages.
|
|
.TP
|
|
.B M_TRS (CODE)
|
|
The text resident set size of the process (i.e. the size of the process's
|
|
executable instructions).
|
|
.TP
|
|
.B M_DRS (DATA)
|
|
The data resident set size (data + stack) of the process (i.e. the size of anything
|
|
except the process's executable instructions).
|
|
.TP
|
|
.B M_LRS (LIB)
|
|
The library size of the process.
|
|
.TP
|
|
.B M_DT (DIRTY)
|
|
The size of the dirty pages of the process.
|
|
.TP
|
|
.B M_SWAP (SWAP)
|
|
The size of the process's swapped pages.
|
|
.TP
|
|
.B M_PSS (PSS)
|
|
The proportional set size, same as M_RESIDENT but each page is divided by the
|
|
number of processes sharing it.
|
|
.TP
|
|
.B M_M_PSSWP (PSSWP)
|
|
The proportional swap share of this mapping, unlike M_SWAP this does not take
|
|
into account swapped out page of underlying shmem objects.
|
|
.TP
|
|
.B ST_UID (UID)
|
|
The user ID of the process owner.
|
|
.TP
|
|
.B PERCENT_CPU (CPU%)
|
|
The percentage of the CPU time that the process is currently using.
|
|
.TP
|
|
.B PERCENT_MEM (MEM%)
|
|
The percentage of memory the process is currently using (based on the process's
|
|
resident memory size, see M_RESIDENT above).
|
|
.TP
|
|
.B USER
|
|
The username of the process owner, or the user ID if the name can't be
|
|
determined.
|
|
.TP
|
|
.B TIME (TIME+)
|
|
The time, measured in clock ticks that the process has spent in user and system
|
|
time (see UTIME, STIME above).
|
|
.TP
|
|
.B NLWP
|
|
The number of threads in the process.
|
|
.TP
|
|
.B TGID
|
|
The thread group ID.
|
|
.TP
|
|
.B CTID
|
|
OpenVZ container ID, a.k.a virtual environment ID.
|
|
.TP
|
|
.B VPID
|
|
OpenVZ process ID.
|
|
.TP
|
|
.B VXID
|
|
VServer process ID.
|
|
.TP
|
|
.B RCHAR (RD_CHAR)
|
|
The number of bytes the process has read.
|
|
.TP
|
|
.B WCHAR (WR_CHAR)
|
|
The number of bytes the process has written.
|
|
.TP
|
|
.B SYSCR (RD_SYSC)
|
|
The number of read(2) syscalls for the process.
|
|
.TP
|
|
.B SYSCW (WR_SYSC)
|
|
The number of write(2) syscalls for the process.
|
|
.TP
|
|
.B RBYTES (IO_RBYTES)
|
|
Bytes of read(2) I/O for the process.
|
|
.TP
|
|
.B WBYTES (IO_WBYTES)
|
|
Bytes of write(2) I/O for the process.
|
|
.TP
|
|
.B CNCLWB (IO_CANCEL)
|
|
Bytes of cancelled write(2) I/O.
|
|
.TP
|
|
.B IO_READ_RATE (DISK READ)
|
|
The I/O rate of read(2) in bytes per second, for the process.
|
|
.TP
|
|
.B IO_WRITE_RATE (DISK WRITE)
|
|
The I/O rate of write(2) in bytes per second, for the process.
|
|
.TP
|
|
.B IO_RATE (DISK R/W)
|
|
The I/O rate, IO_READ_RATE + IO_WRITE_RATE (see above).
|
|
.TP
|
|
.B CGROUP
|
|
Which cgroup the process is in.
|
|
.TP
|
|
.B OOM
|
|
OOM killer score.
|
|
.TP
|
|
.B CTXT
|
|
Incremental sum of voluntary and nonvoluntary context switches.
|
|
.TP
|
|
.B IO_PRIORITY (IO)
|
|
The I/O scheduling class followed by the priority if the class supports it:
|
|
\fBR\fR for Realtime
|
|
\fBB\fR for Best-effort
|
|
\fBid\fR for Idle
|
|
.TP
|
|
.B PERCENT_CPU_DELAY (CPUD%)
|
|
The percentage of time spent waiting for a CPU (while runnable). Requires CAP_NET_ADMIN.
|
|
.TP
|
|
.B PERCENT_IO_DELAY (IOD%)
|
|
The percentage of time spent waiting for the completion of synchronous block I/O. Requires CAP_NET_ADMIN.
|
|
.TP
|
|
.B PERCENT_SWAP_DELAY (SWAPD%)
|
|
The percentage of time spent swapping in pages. Requires CAP_NET_ADMIN.
|
|
.TP
|
|
.B COMM
|
|
The command name for the process. Requires Linux kernel 2.6.33 or newer.
|
|
.TP
|
|
.B EXE
|
|
The executable file of the process as reported by the kernel. Requires CAP_SYS_PTRACE and PTRACE_MODE_READ_FSCRED.
|
|
.TP
|
|
.B All other flags
|
|
Currently unsupported (always displays '-').
|
|
.SH "EXTERNAL LIBRARIES"
|
|
While
|
|
.B htop
|
|
depends on most of the libraries it uses at build time there are two
|
|
noteworthy exceptions to this rule. These exceptions both relate to
|
|
data displayed in meters displayed in the header of
|
|
.B htop
|
|
and were intentionally created as optional runtime dependencies instead.
|
|
These exceptions are described below:
|
|
.TP
|
|
.B libsystemd
|
|
The bindings for libsystemd are used in the SystemD meter to determine
|
|
the number of active services and the overall system state. Looking for
|
|
the functions to determine these information at runtime allows for
|
|
builds to support these meters without forcing the package manager
|
|
to install these libraries on systems that otherwise don't use systemd.
|
|
|
|
Summary: no build time dependency, optional runtime dependency on
|
|
.B libsystemd
|
|
via dynamic loading, with
|
|
.B systemctl(1)
|
|
fallback.
|
|
.TP
|
|
.B libsensors
|
|
The bindings for libsensors are used for the CPU temperature readings
|
|
in the CPU usage meters if displaying the temperature is enabled through
|
|
the setup screen. In order for
|
|
.B htop
|
|
to show these temperatures correctly though, a proper configuration
|
|
of libsensors through its usual configuration files is assumed and that
|
|
all CPU cores correspond to temperature sensors from the
|
|
.B coretemp
|
|
driver with core 0 corresponding to a sensor labelled "Core 0". The
|
|
package temperature may be given as "Package id 0". If missing it is
|
|
inferred as the maximum value from the available per-core readings.
|
|
|
|
Summary: build time dependency on
|
|
.B libsensors(3)
|
|
C header files, optional runtime dependency on
|
|
.B libsensors(3)
|
|
via dynamic loading.
|
|
.SH "CONFIG FILE"
|
|
By default
|
|
.B htop
|
|
reads its configuration from the XDG-compliant path
|
|
.IR ~/.config/htop/htoprc .
|
|
The configuration file is overwritten by
|
|
.BR htop 's
|
|
in-program Setup configuration, so it should not be hand-edited.
|
|
If no user configuration exists
|
|
.B htop
|
|
tries to read the system-wide configuration from
|
|
.I @sysconfdir@/htoprc
|
|
and as a last resort, falls back to its hard coded defaults.
|
|
.LP
|
|
You may override the location of the configuration file using the $HTOPRC
|
|
environment variable (so you can have multiple configurations for different
|
|
machines that share the same home directory, for example).
|
|
.SH "MEMORY SIZES"
|
|
Memory sizes in
|
|
.B htop
|
|
are displayed in a human-readable form.
|
|
Sizes are printed in powers of 1024. (e.g., 1023M = 1072693248 Bytes)
|
|
.LP
|
|
The decision to use this convention was made in order to conserve screen
|
|
space and make memory size representations consistent throughout
|
|
.BR htop .
|
|
.SH "SEE ALSO"
|
|
.BR proc (5),
|
|
.BR top (1),
|
|
.BR free (1),
|
|
.BR ps (1),
|
|
.BR uptime (1)
|
|
and
|
|
.BR limits.conf (5).
|
|
.SH "AUTHORS"
|
|
.B htop
|
|
was originally developed by Hisham Muhammad.
|
|
Nowadays it is maintained by the community at <htop@groups.io>.
|