htop - an interactive process viewer
Go to file
gmbroome 1aa23925c9 Import Solaris support (#741)
This commit adds support for Solaris, squashed from PR #741:

Summary of additions:

* Initial setup of Solaris platform directory
* Add Solaris platform into autoconf template
* Uptime and load averages
* Add dependency on libkstat
* Basic process listing
* Zone name display
* CPU detection
* Per-process memory and CPU usage parsed correctly
* Uses sysconf to discover number of CPUs, instead of more complex libkstat code
* Simple memory display working
* Reduce repetitive calls to the PAGE_SIZE macro when reading memory info
* Add Project, Contract, Task, and Pool into process properties
* Use system major()/minor() implementations and remove extraneous definition of mkdev()
* Get the STARTTIME column working properly, using the Linux implementation as a guide
2018-04-06 11:13:30 -03:00
darwin Fix inttypes.h header 2018-02-26 20:13:09 -03:00
dragonflybsd Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
freebsd Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
linux Only compute counters is process is shown 2018-02-26 20:13:09 -03:00
openbsd Interpret TTY_NR column on Linux, 2016-10-01 03:09:04 -03:00
scripts Implemented various performance counters 2018-02-26 20:13:09 -03:00
solaris Import Solaris support (#741) 2018-04-06 11:13:30 -03:00
unsupported Remove unused function from unsupported/ 2018-02-18 21:18:53 -03:00
.editorconfig add editorconfig file to give hints to editors 2015-10-05 11:13:17 +02:00
.gitignore .gitignore vim & nano swp files 2017-07-22 22:34:30 -05:00
.travis.yml travis-ci should really detect autogen.sh... 2015-11-19 13:14:20 -02:00
AUTHORS Initial import. 2006-03-04 18:16:49 +00:00
Action.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
Action.h Auto-follow process after a search. 2016-05-05 10:30:06 -03:00
Affinity.c Portable affinity using hwloc 2016-02-14 19:57:29 -02:00
Affinity.h Portable affinity using hwloc 2016-02-14 19:57:29 -02:00
AffinityPanel.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
AffinityPanel.h Sorry about the mega-patch. 2015-01-21 23:27:31 -02:00
AvailableColumnsPanel.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
AvailableColumnsPanel.h Sorry about the mega-patch. 2015-01-21 23:27:31 -02:00
AvailableMetersPanel.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
AvailableMetersPanel.h Sorry about the mega-patch. 2015-01-21 23:27:31 -02:00
BatteryMeter.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
BatteryMeter.h Move platform-dependent parts of Linux battery meter. 2014-11-27 21:04:57 -02:00
CONTRIBUTING.md Add Contributing Guide! 2018-02-26 11:45:53 -03:00
COPYING Resolve license incompatibility issues, 2010-02-24 21:13:45 +00:00
CPUMeter.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
CPUMeter.h Calculate CPU averages on Darwin (See #295). 2015-10-23 13:46:21 -02:00
CRT.c Begin add supporting for multiple screens 2018-02-26 20:13:09 -03:00
CRT.h Begin add supporting for multiple screens 2018-02-26 20:13:09 -03:00
CategoriesPanel.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
CategoriesPanel.h Sorry about the mega-patch. 2015-01-21 23:27:31 -02:00
ChangeLog Update ChangeLog 2018-02-26 10:54:01 -03:00
CheckItem.c Avoid future confusions with how default values are set. 2015-08-12 17:29:32 -03:00
CheckItem.h Avoid future confusions with how default values are set. 2015-08-12 17:29:32 -03:00
ClockMeter.c Rename Meter.setValues() functions to updateValues() 2016-05-04 13:39:26 +08:00
ClockMeter.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
ColorsPanel.c Fix color behavior on some terminals. 2018-02-05 07:20:27 +01:00
ColorsPanel.h Make the implementation of color schemes declarative. 2015-02-03 22:30:05 +01:00
ColumnsPanel.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
ColumnsPanel.h Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
DisplayOptionsPanel.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
DisplayOptionsPanel.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
EnvScreen.c Security review: make privilege dropping-restoring optional. 2017-07-26 15:40:55 -03:00
EnvScreen.h refactor *Screen classes, add InfoScreen superclass 2016-01-12 06:00:58 -02:00
FunctionBar.c Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
FunctionBar.h Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
Hashtable.c Check for failure in allocations. 2016-02-02 15:53:02 +01:00
Hashtable.h major header cleanup 2011-12-26 21:35:57 +00:00
Header.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
Header.h Fix macro Header_forEachColumn 2016-05-07 14:57:51 +08:00
HostnameMeter.c Rename Meter.setValues() functions to updateValues() 2016-05-04 13:39:26 +08:00
HostnameMeter.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
INSTALL Update INSTALL text from autoconf-2.69 2016-05-08 14:35:20 +08:00
IncSet.c Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
IncSet.h Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
InfoScreen.c Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
InfoScreen.h refactor *Screen classes, add InfoScreen superclass 2016-01-12 06:00:58 -02:00
ListItem.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
ListItem.h Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
LoadAverageMeter.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
LoadAverageMeter.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
MainPanel.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
MainPanel.h Replace size_t with int/void* union 2018-02-18 10:38:49 -03:00
Makefile.am Import Solaris support (#741) 2018-04-06 11:13:30 -03:00
MemoryMeter.c Rename Meter.setValues() functions to updateValues() 2016-05-04 13:39:26 +08:00
MemoryMeter.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
Meter.c Fix out-of-bounds read 2018-02-18 10:17:56 -03:00
Meter.h Rename Meter.setValues() functions to updateValues() 2016-05-04 13:39:26 +08:00
MetersPanel.c fix fallthough comments for GCC 7.x 2017-10-23 14:27:33 -04:00
MetersPanel.h Mouse-friendly functions bar for meters panel 2016-07-16 21:13:46 +08:00
NEWS cleanup old stuff 2011-11-21 02:58:34 +00:00
Object.c Check for failure in allocations. 2016-02-02 15:53:02 +01:00
Object.h Check for failure in allocations. 2016-02-02 15:53:02 +01:00
OpenFilesScreen.c Replace size_t with int/void* union 2018-02-18 10:38:49 -03:00
OpenFilesScreen.h refactor *Screen classes, add InfoScreen superclass 2016-01-12 06:00:58 -02:00
Panel.c Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
Panel.h Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
Process.c Fix inttypes.h header 2018-02-26 20:13:09 -03:00
Process.h Fix inttypes.h header 2018-02-26 20:13:09 -03:00
ProcessList.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
ProcessList.h Portable affinity using hwloc 2016-02-14 19:57:29 -02:00
README Point users to the official release tarballs. 2016-08-23 15:43:27 -03:00
README.md Add README.md for Github 2014-02-03 09:11:39 -02:00
RichString.c Protect against overflows in RichString_setAttrn 2018-02-26 11:05:12 -03:00
RichString.h Protect against overflows in RichString_setAttrn 2018-02-26 11:05:12 -03:00
ScreenManager.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
ScreenManager.h Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
ScreensPanel.c Implemented various performance counters 2018-02-26 20:13:09 -03:00
ScreensPanel.h Screens: Fix "New Screen" option 2018-02-26 20:13:09 -03:00
Settings.c Add more default screens 2018-02-26 20:13:09 -03:00
Settings.h Update generated header 2018-02-26 20:13:09 -03:00
SignalsPanel.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
SignalsPanel.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
StringUtils.c Changed type of some integer variables to avoid overflows 2018-03-16 12:01:24 -03:00
StringUtils.h Optimize Strings_startWith() 2016-08-11 10:49:35 +08:00
SwapMeter.c Rename Meter.setValues() functions to updateValues() 2016-05-04 13:39:26 +08:00
SwapMeter.h use dynamic units for text display 2015-08-27 06:13:27 +02:00
TESTPLAN Fix failing stuff. 2015-04-09 15:56:43 -03:00
TasksMeter.c htop scans /proc to determine how many running tasks exist. Since that 2018-01-23 14:11:47 -02:00
TasksMeter.h Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers. 2012-12-05 15:12:20 +00:00
TraceScreen.c Move responsibility for cursor placement to Panels 2018-02-26 20:13:09 -03:00
TraceScreen.h refactor *Screen classes, add InfoScreen superclass 2016-01-12 06:00:58 -02:00
UptimeMeter.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
UptimeMeter.h Move UptimeMeter back into cross-platform code. 2014-11-27 19:34:47 -02:00
UsersTable.c Check for failure in allocations. 2016-02-02 15:53:02 +01:00
UsersTable.h major header cleanup 2011-12-26 21:35:57 +00:00
Vector.c Optimize Vector_size on non-debug builds 2018-02-05 11:01:35 +01:00
Vector.h Optimize Vector_size on non-debug builds 2018-02-05 11:01:35 +01:00
XAlloc.c Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
XAlloc.h Security review: check results of snprintf. 2017-07-27 16:07:50 -03:00
autogen.sh Simplify autogen.sh 2016-02-14 22:36:40 +01:00
configure.ac Import Solaris support (#741) 2018-04-06 11:13:30 -03:00
htop.1.in Typo in man page 2018-02-04 17:01:39 +01:00
htop.c Add support for multiple screens, switchable using Tab 2018-02-26 20:13:09 -03:00
htop.desktop Add Comment[zh_CN] and GenericName[zh_CN] into htop.desktop 2017-03-24 01:45:10 +08:00
htop.h Sorry about the mega-patch. 2015-01-21 23:27:31 -02:00
htop.png Updated icon! 2014-04-09 14:47:58 -03:00
test_spec.lua Fix typos, by @Gelma. 2016-08-30 12:37:31 -03:00

README.md

Build Status PayPal donate

htop

by Hisham Muhammad hisham@gobolinux.org (2004 - 2016)

Introduction

This is htop, an interactive process viewer. It requires ncurses. It is developed primarily on Linux, but we also have code for running under FreeBSD and Mac OS X (help and testing are wanted for these platforms!)

This software has evolved considerably over the years, and is reasonably complete, but there is always room for improvement.

Comparison between htop and classic top

  • In htop you can scroll the list vertically and horizontally to see all processes and full command lines.
  • In top you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident).
  • htop starts faster (top seems to collect data for a while before displaying anything).
  • In htop you don't need to type the process number to kill a process, in top you do.
  • In htop you don't need to type the process number or the priority value to renice a process, in top you do.
  • In htop you can kill multiple processes at once.
  • top is older, hence, more tested.

Compilation instructions

This program is distributed as a standard autotools-based package. See the INSTALL file for detailed instructions.

When compiling from a release tarball, run:

./configure && make

For compiling sources downloaded from the Git repository, run:

./autogen.sh && ./configure && make

By default make install will install into /usr/local, for changing the path use ./configure --prefix=/some/path.

See the manual page (man htop) or the on-line help ('F1' or 'h' inside htop) for a list of supported key commands.

If not all keys work check your curses configuration.

License

GNU General Public License, version 2 (GPL-2.0)