简介
htop
是一个跨平台的交互式进程查看器。
htop
允许垂直和水平滚动进程列表,以查看完整的命令行和相关信息,如内存和 CPU 使用情况。同时还显示系统整体信息,如平均负载或交换空间使用情况。
显示的信息可通过图形设置进行配置,并可以交互式地进行排序和过滤。
与进程相关的任务(如终止和调整优先级)可以无需输入进程 ID 即可完成。
运行 htop
需要 ncurses
库,通常名为 libncurses(w)。
htop
使用 C 语言编写。
更多信息和详情请访问 htop.dev。
构建说明
先决条件
构建时依赖列表:
- 标准 GNU autotools 基础的 C 工具链
- 符合 C99 标准的编译器
autoconf
automake
autotools
ncurses
关于 ncurses
的注意事项:
htop
需要ncurses
6.0。请注意,在 Debian/Ubuntu 上,适当的包有时仍被称为 libncurses5。此外,ncurses
通常有两种版本:
- 支持 Unicode
- 不支持 Unicode
这也反映在 Debian/Ubuntu 的包名中(通过额外的 'w' - 'w'ide 字符支持)。
额外的构建时依赖列表(基于功能标志):
sensors
hwloc
libcap
(2.21 版本或更高)libnl-3
和libnl-genl-3
从你的包管理器安装这些和其他 C 开发所需的包。
Debian/Ubuntu
sudo apt install libncursesw5-dev autotools-dev autoconf automake build-essential
Fedora/RHEL
sudo dnf install ncurses-devel automake autoconf gcc
Archlinux/Manjaro
sudo pacman -S ncurses automake autoconf gcc
macOS
brew install ncurses automake autoconf gcc
从源代码编译:
要从源代码编译,从 Git 仓库下载(git clone
或从 GitHub 发布页面 下载),然后运行:
./autogen.sh && ./configure && make
安装
要在本地系统安装,运行 make install
。默认情况下,make install
安装到 /usr/local
。要更改此路径,使用 ./configure --prefix=/some/path
。
构建选项
htop
有几个构建时选项来启用/禁用额外功能。
通用
--enable-unicode
: 启用Unicode支持- 依赖:libncursesw
- 默认:是
--enable-affinity
: 启用sched_setaffinity(2)
和sched_getaffinity(2)
以支持亲和性;与hwloc冲突- 默认:检查
--enable-hwloc
: 启用hwloc支持CPU亲和性;禁用亲和性支持- 依赖:libhwloc
- 默认:否
--enable-static
: 构建静态htop二进制文件;不支持hwloc和延迟计算- 默认:否
--enable-debug
: 启用断言和内部健全性检查;会导致性能损失- 默认:否
Performance Co-Pilot
--enable-pcp
: 通过新的pcp-htop实用程序启用Performance Co-Pilot支持- 依赖:libpcp
- 默认:否
Linux
--enable-sensors
: 启用libsensors(3)支持以读取温度数据- 依赖:构建时需要libsensors-dev,运行时通过
dlopen(3)
加载libsensors(如果可用) - 默认:检查
- 依赖:构建时需要libsensors-dev,运行时通过
--enable-capabilities
: 启用Linux capabilities支持- 依赖:libcap
- 默认:检查
--with-proc
: Linux兼容proc文件系统的位置- 默认:/proc
--enable-openvz
: 启用OpenVZ支持- 默认:否
--enable-vserver
: 启用VServer支持- 默认:否
--enable-ancient-vserver
: 启用古老的VServer支持(隐含--enable-vserver
)- 默认:否
--enable-delayacct
: 启用Linux延迟计算支持- 依赖:构建时需要libnl-3-dev和libnl-genl-3-dev,运行时通过
dlopen(3)
加载libnl-3和libnl-genl-3(如果可用且需要) - 默认:检查
- 依赖:构建时需要libnl-3-dev和libnl-genl-3-dev,运行时通过
运行时依赖:
htop
有一组固定的最小运行时依赖,保持尽可能最小化:
ncurses
库用于终端处理(宽字符支持)。
可选运行时依赖:
htop
有一组固定的可选依赖,取决于使用的构建/配置选项:
Linux
- 如果不构建静态二进制文件,当存在可选依赖支持(如
libsensors
、libsystemd
)时,始终需要libdl
。 - 当使用
--enable-capabilities
配置htop
时,始终需要libcap
,用于POSIX 1003.1e capabilities的用户空间接口。 - 即使使用
--enable-sensors
配置htop
,libsensors
(用于读取温度和CPU速度)也是可选的。 - 当未使用
--enable-static
配置htop
时,libsystemd
是可选的。如果静态构建且configure
未找到libsystemd
,则完全禁用systemd meter支持。 - 如果
htop
配置了--enable-delayacct
且延迟计算进程字段处于活动状态,则需要libnl-3
和libnl-genl-3
。
htop
在运行时检查实际运行时库的可用性。
BSD
在大多数BSD系统上,kvm
是读取内核信息的必要条件。
有关必需和可选依赖的更多信息,可以在configure.ac中找到。
使用
请参阅手册页(man htop
)或帮助菜单(在htop
中按F1或h)以获取支持的键命令列表。
支持
如果您在运行htop
时遇到问题,请查阅您的操作系统/Linux发行版文档以获取支持和提交错误报告。
错误、开发反馈
我们有一个开发邮件列表。欢迎订阅以获取发布公告或询问有关htop
开发的问题。
您也可以加入我们的IRC频道#htop on Libera.Chat与开发者交流。
如果您在htop
的源代码中发现问题,请检查是否已在我们的GitHub问题跟踪器中报告。
如果没有,请提交一个新的问题,描述您发现的问题、可能涉及的源代码位置以及可能的修复方法(如果有的话)。
历史
htop
由Hisham Muhammad于2004年至2019年间发明、开发和维护。他的遗留仓库已被存档以保存历史。
2020年,一个团队友好地接管了开发工作,并继续协作维护htop
。
许可证
GNU通用公共许可证,版本2(GPL-2.0)或您选择的任何更高版本。