You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
7.6 KiB
189 lines
7.6 KiB
# [](https://htop.dev) |
|
|
|
[](https://github.com/htop-dev/htop/actions) |
|
[](https://scan.coverity.com/projects/21665) |
|
[](https://groups.io/g/htop) |
|
[](https://web.libera.chat/#htop) |
|
[](https://github.com/htop-dev/htop/releases/latest) |
|
[](https://repology.org/project/htop/versions) |
|
[](COPYING?raw=true) |
|
|
|
 |
|
|
|
## Introduction |
|
|
|
`htop` is a cross-platform interactive process viewer. |
|
|
|
`htop` allows scrolling the list of processes vertically and horizontally to see their full command lines and related information like memory and CPU consumption. |
|
Also system wide information, like load average or swap usage, is shown. |
|
|
|
The information displayed is configurable through a graphical setup and can be sorted and filtered interactively. |
|
|
|
Tasks related to processes (e.g. killing and renicing) can be done without entering their PIDs. |
|
|
|
Running `htop` requires `ncurses` libraries, typically named libncurses(w). |
|
|
|
`htop` is written in C. |
|
|
|
For more information and details visit [htop.dev](https://htop.dev). |
|
|
|
## Build instructions |
|
|
|
### Prerequisite |
|
List of build-time dependencies: |
|
* standard GNU autotools-based C toolchain |
|
- C99 compliant compiler |
|
- `autoconf` |
|
- `automake` |
|
- `autotools` |
|
* `ncurses` |
|
|
|
**Note about `ncurses`:** |
|
> `htop` requires `ncurses` 6.0. Be aware the appropriate package is sometimes still called libncurses5 (on Debian/Ubuntu). Also `ncurses` usually comes in two flavours: |
|
>* With Unicode support. |
|
>* Without Unicode support. |
|
> |
|
> This is also something that is reflected in the package name on Debian/Ubuntu (via the additional 'w' - 'w'ide character support). |
|
|
|
List of additional build-time dependencies (based on feature flags): |
|
* `sensors` |
|
* `hwloc` |
|
* `libcap` (v2.21 or later) |
|
* `libnl-3` and `libnl-genl-3` |
|
|
|
Install these and other required packages for C development from your package manager. |
|
|
|
**Debian/Ubuntu** |
|
~~~ shell |
|
sudo apt install libncursesw5-dev autotools-dev autoconf automake build-essential |
|
~~~ |
|
|
|
**Fedora/RHEL** |
|
~~~ shell |
|
sudo dnf install ncurses-devel automake autoconf gcc |
|
~~~ |
|
|
|
**Archlinux/Manjaro** |
|
~~~ shell |
|
sudo pacman -S ncurses automake autoconf gcc |
|
~~~ |
|
|
|
**macOS** |
|
~~~ shell |
|
brew install ncurses automake autoconf gcc |
|
~~~ |
|
|
|
### Compile from source: |
|
To compile from source, download from the Git repository (`git clone` or downloads from [GitHub releases](https://github.com/htop-dev/htop/releases/)), then run: |
|
~~~ shell |
|
./autogen.sh && ./configure && make |
|
~~~ |
|
|
|
### Install |
|
To install on the local system run `make install`. By default `make install` installs into `/usr/local`. To change this path use `./configure --prefix=/some/path`. |
|
|
|
### Build Options |
|
|
|
`htop` has several build-time options to enable/disable additional features. |
|
|
|
#### Generic |
|
|
|
* `--enable-unicode`: |
|
enable Unicode support |
|
- dependency: *libncursesw* |
|
- default: *yes* |
|
* `--enable-affinity`: |
|
enable `sched_setaffinity(2)` and `sched_getaffinity(2)` for affinity support; conflicts with hwloc |
|
- default: *check* |
|
* `--enable-hwloc`: |
|
enable hwloc support for CPU affinity; disables affinity support |
|
- dependency: *libhwloc* |
|
- default: *no* |
|
* `--enable-static`: |
|
build a static htop binary; hwloc and delay accounting are not supported |
|
- default: *no* |
|
* `--enable-debug`: |
|
Enable asserts and internal sanity checks; implies a performance penalty |
|
- default: *no* |
|
|
|
#### Performance Co-Pilot |
|
|
|
* `--enable-pcp`: |
|
enable Performance Co-Pilot support via a new pcp-htop utility |
|
- dependency: *libpcp* |
|
- default: *no* |
|
|
|
#### Linux |
|
|
|
* `--enable-sensors`: |
|
enable libsensors(3) support for reading temperature data |
|
- dependencies: *libsensors-dev*(build-time), at runtime *libsensors* is loaded via `dlopen(3)` if available |
|
- default: *check* |
|
* `--enable-capabilities`: |
|
enable Linux capabilities support |
|
- dependency: *libcap* |
|
- default: *check* |
|
* `--with-proc`: |
|
location of a Linux-compatible proc filesystem |
|
- default: */proc* |
|
* `--enable-openvz`: |
|
enable OpenVZ support |
|
- default: *no* |
|
* `--enable-vserver`: |
|
enable VServer support |
|
- default: *no* |
|
* `--enable-ancient-vserver`: |
|
enable ancient VServer support (implies `--enable-vserver`) |
|
- default: *no* |
|
* `--enable-delayacct`: |
|
enable Linux delay accounting support |
|
- dependencies: *libnl-3-dev*(build-time) and *libnl-genl-3-dev*(build-time), at runtime *libnl-3* and *libnl-genl-3* are loaded via `dlopen(3)` if available and requested |
|
- default: *check* |
|
|
|
|
|
## Runtime dependencies: |
|
`htop` has a set of fixed minimum runtime dependencies, which is kept as minimal as possible: |
|
* `ncurses` libraries for terminal handling (wide character support). |
|
|
|
### Runtime optional dependencies: |
|
`htop` has a set of fixed optional dependencies, depending on build/configure option used: |
|
|
|
#### Linux |
|
* `libdl`, if not building a static binary, is always required when support for optional dependencies (i.e. `libsensors`, `libsystemd`) is present. |
|
* `libcap`, user-space interfaces to POSIX 1003.1e capabilities, is always required when `--enable-capabilities` was used to configure `htop`. |
|
* `libsensors`, readout of temperatures and CPU speeds, is optional even when `--enable-sensors` was used to configure `htop`. |
|
* `libsystemd` is optional when `--enable-static` was not used to configure `htop`. If building statically and `libsystemd` is not found by `configure`, support for the systemd meter is disabled entirely. |
|
* `libnl-3` and `libnl-genl-3`, if `htop` was configured with `--enable-delayacct` and delay accounting process fields are active. |
|
|
|
`htop` checks for the availability of the actual runtime libraries as `htop` runs. |
|
|
|
#### BSD |
|
On most BSD systems `kvm` is a requirement to read kernel information. |
|
|
|
More information on required and optional dependencies can be found in [configure.ac](configure.ac). |
|
|
|
## Usage |
|
See the manual page (`man htop`) or the help menu (**F1** or **h** inside `htop`) for a list of supported key commands. |
|
|
|
## Support |
|
|
|
If you have trouble running `htop` please consult your operating system / Linux distribution documentation for getting support and filing bugs. |
|
|
|
## Bugs, development feedback |
|
|
|
We have a [development mailing list](https://htop.dev/mailinglist.html). Feel free to subscribe for release announcements or asking questions on the development of `htop`. |
|
|
|
You can also join our IRC channel [#htop on Libera.Chat](https://web.libera.chat/#htop) and talk to the developers there. |
|
|
|
If you have found an issue within the source of `htop`, please check whether this has already been reported in our [GitHub issue tracker](https://github.com/htop-dev/htop/issues). |
|
If not, please file a new issue describing the problem you have found, the potential location in the source code you are referring to and a possible fix if available. |
|
|
|
## History |
|
|
|
`htop` was invented, developed and maintained by [Hisham Muhammad](https://hisham.hm/) from 2004 to 2019. His [legacy repository](https://github.com/hishamhm/htop/) has been archived to preserve the history. |
|
|
|
In 2020 a [team](https://github.com/orgs/htop-dev/people) took over the development amicably and continues to maintain `htop` collaboratively. |
|
|
|
## License |
|
|
|
GNU General Public License, version 2 (GPL-2.0) or, at your option, any later version.
|
|
|