2021-09-19 11:59:58 +00:00
# [![htop logo](htop.png)](https://htop.dev)
2016-02-11 18:17:00 +00:00
2020-08-20 03:16:31 +00:00
[![CI](https://github.com/htop-dev/htop/workflows/CI/badge.svg)](https://github.com/htop-dev/htop/actions)
2020-08-27 00:42:40 +00:00
[![Coverity Scan Build Status](https://scan.coverity.com/projects/21665/badge.svg)](https://scan.coverity.com/projects/21665)
2020-08-20 03:16:31 +00:00
[![Mailing List](https://img.shields.io/badge/Mailing%20List-htop-blue.svg)](https://groups.io/g/htop)
2021-06-16 12:54:20 +00:00
[![IRC #htop](https://img.shields.io/badge/IRC-htop-blue.svg)](https://web.libera.chat/#htop)
2021-09-19 11:59:58 +00:00
[![GitHub Release](https://img.shields.io/github/release/htop-dev/htop.svg)](https://github.com/htop-dev/htop/releases/latest)
[![Packaging status](https://repology.org/badge/tiny-repos/htop.svg)](https://repology.org/project/htop/versions)
2021-09-24 18:28:26 +00:00
[![License: GPL v2+](https://img.shields.io/badge/License-GPL%20v2+-blue.svg)](COPYING?raw=true)
2014-04-05 22:56:35 +00:00
2020-10-01 07:08:49 +00:00
![Screenshot of htop](docs/images/screenshot.png?raw=true)
2020-09-01 23:54:17 +00:00
## Introduction
2006-03-04 18:16:49 +00:00
2020-08-20 03:16:31 +00:00
`htop` is a cross-platform interactive process viewer.
2020-09-16 15:54:25 +00:00
`htop` allows scrolling the list of processes vertically and horizontally to see their full command lines and related information like memory and CPU consumption.
2021-09-19 11:59:58 +00:00
Also system wide information, like load average or swap usage, is shown.
2020-09-16 15:54:25 +00:00
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.
2021-09-19 11:59:58 +00:00
Running `htop` requires `ncurses` libraries, typically named libncurses(w).
2020-09-16 15:54:25 +00:00
2021-09-19 11:59:58 +00:00
`htop` is written in C.
For more information and details visit [htop.dev](https://htop.dev).
2020-08-20 03:16:31 +00:00
2020-09-01 23:54:17 +00:00
## Build instructions
2006-03-04 18:16:49 +00:00
2021-07-11 12:10:47 +00:00
### Prerequisite
List of build-time dependencies:
2021-09-19 11:59:58 +00:00
* standard GNU autotools-based C toolchain
- C99 compliant compiler
- `autoconf`
- `autotools`
* `ncurses`
2021-07-11 12:10:47 +00:00
**Note about `ncurses`:**
2021-09-20 14:48:39 +00:00
> `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:
2021-07-11 12:10:47 +00:00
>* With Unicode support.
>* Without Unicode support.
>
2021-07-16 02:47:12 +00:00
> This is also something that is reflected in the package name on Debian/Ubuntu (via the additional 'w' - 'w'ide character support).
2021-07-11 12:10:47 +00:00
List of additional build-time dependencies (based on feature flags):
* `sensors`
* `hwloc`
2021-09-22 10:02:10 +00:00
* `libcap` (v2.21 or later)
2021-09-19 11:59:58 +00:00
* `libnl-3`
2021-07-11 12:10:47 +00:00
2021-09-19 11:59:58 +00:00
Install these and other required packages for C development from your package manager.
2021-07-11 12:10:47 +00:00
**Debian/Ubuntu**
2020-09-01 23:54:17 +00:00
~~~ shell
2021-09-19 11:59:58 +00:00
sudo apt install libncursesw5-dev autotools-dev autoconf build-essential
2020-09-01 23:54:17 +00:00
~~~
2016-02-11 19:20:50 +00:00
2021-07-16 02:47:12 +00:00
**Fedora/RHEL**
~~~ shell
2021-09-19 11:59:58 +00:00
sudo dnf install ncurses-devel automake autoconf gcc
2021-07-16 02:47:12 +00:00
~~~
2022-03-24 08:05:04 +00:00
**Archlinux/Manjaro**
~~~ shell
sudo pacman -S ncurses automake autoconf gcc
~~~
2022-04-14 17:44:42 +00:00
**macOS**
~~~ shell
brew install ncurses automake autoconf gcc
~~~
2021-09-19 11:59:58 +00:00
### 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:
2020-09-01 23:54:17 +00:00
~~~ shell
./autogen.sh && ./configure && make
~~~
2016-02-11 13:59:45 +00:00
2021-07-11 12:10:47 +00:00
### Install
2021-07-16 02:47:12 +00:00
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`.
2021-07-11 12:10:47 +00:00
2021-01-22 18:14:46 +00:00
### Build Options
`htop` has several build-time options to enable/disable additional features.
#### Generic
* `--enable-unicode`:
enable Unicode support
2021-09-19 11:59:58 +00:00
- dependency: *libncursesw*
- default: *yes*
2021-06-13 09:29:39 +00:00
* `--enable-affinity`:
enable `sched_setaffinity(2)` and `sched_getaffinity(2)` for affinity support; conflicts with hwloc
2021-09-19 11:59:58 +00:00
- default: *check*
2021-01-22 18:14:46 +00:00
* `--enable-hwloc`:
2021-06-13 09:29:39 +00:00
enable hwloc support for CPU affinity; disables affinity support
2021-09-19 11:59:58 +00:00
- dependency: *libhwloc*
- default: *no*
2021-01-30 12:14:49 +00:00
* `--enable-static`:
2021-01-22 18:14:59 +00:00
build a static htop binary; hwloc and delay accounting are not supported
2021-09-19 11:59:58 +00:00
- default: *no*
2021-01-22 18:14:46 +00:00
* `--enable-debug`:
Enable asserts and internal sanity checks; implies a performance penalty
2021-09-19 11:59:58 +00:00
- default: *no*
#### Performance Co-Pilot
* `--enable-pcp`:
enable Performance Co-Pilot support via a new pcp-htop utility
- dependency: *libpcp*
- default: *no*
2021-01-22 18:14:46 +00:00
#### Linux
* `--enable-sensors`:
enable libsensors(3) support for reading temperature data
2021-09-19 11:59:58 +00:00
- dependencies: *libsensors-dev*(build-time), at runtime *libsensors* is loaded via `dlopen(3)` if available
- default: *check*
2021-01-22 18:14:46 +00:00
* `--enable-capabilities`:
enable Linux capabilities support
2021-09-19 11:59:58 +00:00
- dependency: *libcap*
- default: *check*
2021-01-22 18:14:46 +00:00
* `--with-proc`:
location of a Linux-compatible proc filesystem
2021-09-19 11:59:58 +00:00
- default: */proc*
2021-01-22 18:14:46 +00:00
* `--enable-openvz`:
enable OpenVZ support
2021-09-19 11:59:58 +00:00
- default: *no*
2021-01-22 18:14:46 +00:00
* `--enable-vserver`:
enable VServer support
2021-09-19 11:59:58 +00:00
- default: *no*
2021-01-22 18:14:46 +00:00
* `--enable-ancient-vserver`:
enable ancient VServer support (implies `--enable-vserver`)
2021-09-19 11:59:58 +00:00
- default: *no*
2021-01-22 18:14:46 +00:00
* `--enable-delayacct`:
enable Linux delay accounting support
2021-09-19 11:59:58 +00:00
- dependencies: *pkg-config*(build-time), *libnl-3* and *libnl-genl-3*
- default: *check*
2021-01-22 18:14:46 +00:00
2021-07-11 12:10:47 +00:00
## 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:
2021-09-19 11:59:58 +00:00
#### Linux
2021-09-20 14:48:39 +00:00
* `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`.
2021-07-11 12:10:47 +00:00
* `libsensors`, readout of temperatures and CPU speeds, is optional even when `--enable-sensors` was used to configure `htop`.
2021-09-19 11:59:58 +00:00
* `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.
2021-07-11 12:10:47 +00:00
2021-09-20 14:48:39 +00:00
`htop` checks for the availability of the actual runtime libraries as `htop` runs.
2021-07-11 12:10:47 +00:00
2021-09-19 11:59:58 +00:00
#### BSD
On most BSD systems `kvm` is a requirement to read kernel information.
2021-07-11 12:10:47 +00:00
More information on required and optional dependencies can be found in [configure.ac](configure.ac).
## Usage
2021-09-19 11:59:58 +00:00
See the manual page (`man htop`) or the help menu (**F1** or **h** inside `htop`) for a list of supported key commands.
2020-09-16 15:54:25 +00:00
## Support
2021-09-20 14:48:39 +00:00
If you have trouble running `htop` please consult your operating system / Linux distribution documentation for getting support and filing bugs.
2020-09-16 15:54:25 +00:00
## Bugs, development feedback
2021-09-20 14:48:39 +00:00
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`.
2020-09-16 15:54:25 +00:00
2021-09-19 11:59:58 +00:00
You can also join our IRC channel [#htop on Libera.Chat](https://web.libera.chat/#htop) and talk to the developers there.
2020-09-16 15:54:25 +00:00
2021-09-20 14:48:39 +00:00
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).
2021-09-19 11:59:58 +00:00
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.
2020-09-16 15:54:25 +00:00
## History
2021-09-19 11:59:58 +00:00
`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.
2016-02-11 13:59:45 +00:00
2020-09-16 15:54:25 +00:00
In 2020 a [team](https://github.com/orgs/htop-dev/people) took over the development amicably and continues to maintain `htop` collaboratively.
2016-02-11 13:59:45 +00:00
## License
2006-03-04 18:16:49 +00:00
2021-09-22 09:28:31 +00:00
GNU General Public License, version 2 (GPL-2.0) or, at your option, any later version.