hishamhm / htop Goto Github PK
View Code? Open in Web Editor NEWhtop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
License: GNU General Public License v2.0
htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
License: GNU General Public License v2.0
It would be awesome to have the option to collapse and expand branches of the process tree in tree view. Switching to a different sort order is great to show you what is using the most CPU or memory or something, but can also be very disorienting.
Currently there is only 1 menu, which is full. It would be nice if by holding ctrl or such you could switch to another menu that would offer other stuff that doesn't fit into current 12 function keys.
For example it would be cool if ctrl + left / right arrow would quickly let you switch the column by which the list is sorted so that you could very quickly switch the view's and simply change if you want sort processes by memory, or IO etc, that is something I am really missing now (having to switch the columns by accessing the preferences is just slow)
columns minflt majflt cminflt cmajflt show as dashes '-' in table title and values.
(tested 1.0.1, 1.0.2, master, ubuntu/slackware - i can see pagefaults stats in top
, sar
or collectl
)
Mac OSX 10.9.2
$ brew install htop
$ htop
htop 0.8.2.2 aborted. Please report bug at http://htop.sf.net
Backtrace:
htop[0x40959f]
/lib/x86_64-linux-gnu/libc.so.6(+0x364a0)[0x7f88373394a0]
htop(main+0x81d)[0x40596d]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f883732476d]
htop[0x407a15]
Aborted (core dumped)
Laptops often have small arrow keys, and hitting page up/down often requires hitting the fn key as well. Having the ability to toggle this functionality will make htop easier for mobile users as well as people who are used to vi movement keys.
Forked and will check this out soon
Commit 322ba27 introduced the following bug:
– start htop
– start another process, e.g. xterm
– the newly started process and it’s possible children are displayed in a separate tree (if tree view is enabled)
How about a FreeBSD Native htop version? Without the need for linprocfs?
Because i discovered the problem that htop doesn't display wired memory usage in FreeBSD and therefore only shows a much lower, and therefore wrong, memory usage compared to top or vmstat (vmstat -m)
When I try to use htop while in terminal/ iterm full screen mode, the application crashes.
This happens both if I launch while in fullscreen and also if I transition to fullscreen after launching:
htop 0.8.2.2 aborted. Please report bug at http://htop.sf.net
Running htop 1.0.2 (self-compiled) on a mipsel STB; OS is linux 2.6.22.
Not all kernel thread names are shown, and if you specify to hide kernel threads, the ones without names aren't hidden.
I've found that you identify kernel threads by PGRP=0, but in this case PGRP=1.
Here is a screenshot and (part of...) contents of /proc/*/stat
cat /proc/*/stat 2> /dev/null
1 (init) S 0 1 1 0 -1 2151678208 797 2843536 34 218092 8 434 867981 633482 1 0 1 0 28 1781760 69 2147483647 4194304 4223044 2139578160 2139576664 716826584 0 0 2117163772 26125315 2416678956 0 0 0 0 0 0 0
12975 (pdflush) S 2 0 0 0 -1 2155876416 0 0 0 0 0 54 0 0 1 0 1 0 7533859 0 0 2147483647 0 0 0 0 0 0 0 2147483647 0 2416449880 0 0 18 0 0 0 0
13912 (kVcxoRegulate) S 2 1 1 0 -1 2151678016 0 0 0 0 0 0 0 0 1 0 1 0 1132363 0 0 2147483647 0 0 0 0 0 0 2147483391 1073745920 1834 3365978960 0 0 18 0 0 0 0
13913 (kMonitorVideo) S 2 1 1 0 -1 2151678016 0 0 0 0 0 211 0 0 1 0 1 0 1132363 0 0 2147483647 0 0 0 0 0 0 2147483391 1073745920 1834 3364634884 0 0 18 0 0 0 0
13914 (kTask1) S 2 1 1 0 -1 2151678016 0 0 0 0 0 1673 0 0 1 0 1 0 1132363 0 0 2147483647 0 0 0 0 0 0 2147483391 1073745920 1834 3364634884 0 0 18 0 0 0 0
13915 (kTask2) S 2 1 1 0 -1 2151678016 0 0 0 0 0 123 0 0 1 0 1 0 1132363 0 0 2147483647 0 0 0 0 0 0 2147483391 1073745920 1834 3364634884 0 0 18 0 0 0 0
13916 (kTask3) S 2 1 1 0 -1 2151678016 0 0 0 0 0 127 0 0 1 0 1 0 1132363 0 0 2147483647 0 0 0 0 0 0 2147483391 1073745920 1834 3364634884 0 0 18 0 0 0 0
14439 (smbd) S 1606 1606 1606 0 -1 2151678272 576 0 46 0 24 20 0 0 1 0 1 0 7676114 7581696 147 2147483647 1431633920 1435164836 2141441712 2141440824 717697000 0 69760 0 181793 2419363620 0 0 18 0 0 0 0
....
Something 'Swp:5791M used:1933660k' is a bit harder to read than it could be. I think it would be better if swap used was displayed in the same units as the amount available.
Steps to Reproduce
Current Behaviour:
It quits error saying report this bug.
I'm using the current git of htop and am missing the ability to see easily the real cpu usage of a core/on average in the cpu meter. For example a core can have its cpu time on userspace, kernelspace, etc. but to get the real cpu usage I have to add up these values. Maybe htop can show as first or last row a sum of these values.
I'm using the current git of htop and have noticed that the VIRT column is capped at 127T but the virtual memory of a process can go even higher.
I'm using the current git of htop and I think it would be nice if we would have an option that shows the sum of all columns that are summable. For example with such an option it would be easy to see the total memory processes are using/sharing.
It would be excellent if htop could monitor disk activity, like the way iostat does. Key stats would include reads, writes, iowait time, etc.
On narrow terminals not all fields are visible. In particular the I/O wait % is normally hidden, but for me that's a lot more important than nice%, h/w int% and s/w int%.
I want to compile htop, after having changed one of the colours in the default colour scheme. I want to to do this as elements in htop in this colour cannot be seen, as I have decided to give the solarized theme (in my terminals) another go giving up a couple of years ago.
The grey ANSI elements (bright black?), like the percentage values in the meter bars and the non current user usernames are not visible.
I want to change them from grey to ANSI bright green (not in bold). This should appear as a dark grey in the solarized theme.
It seems that the running processes number at the top right uses the same colour.
How do I do this? I had a look at the CRT.c file, but I have no idea what I am doing.
Cheers.
I'm using the current git of htop and in the htoprc it is possible to adjust the resfresh rate with the delay key. Maybe htop could also have an option in its graphical interface to change this value.
htop 1.0 aborting. Please report bug at http://htop.sf.net
Backtrace:
htop[0x407ac2]
/lib64/libc.so.6(+0x32900)[0x7f55133e0900]
[0x17dbd50]
Aborted
Crashed. Fan RPM change "type".
os : mac osx marvericks
The tickets on SourceForge aren't accessable anymore and they aren't ported to this tracker. At least I had still 11 unresolved tickets so it is likely that there are much more. Maybe you could port all unresolved tickets to this tracker or maybe you can enable the read access on SourceForge again so I can revalidate my tickets and port them myself if needed.
Since upgrade to 3.12.8-hardened kernel, when i open htop as user the cpu% displays 100% for every process. 3.12.6-hardened and before worked fine. top works, looks like a mistake inside htop.
Hello, I found strage bug, that crushes htop. Steps to reproduce bug:
htop 1.0.1 aborting. Please report bug at http://htop.sf.net
Backtrace:
htop[0x40a68f]
/lib64/libc.so.6(+0x37bd0)[0x7ffe35f81bd0]
htop(main+0x80d)[0x406b3d]
/lib64/libc.so.6(__libc_start_main+0xed)[0x7ffe35f6e3dd]
htop[0x408b5d]
Aborted
or on Ubuntu:
htop 1.0.1 aborting. Please report bug at http://htop.sf.net
Backtrace:
htop[0x8050cba]
[0xb76f4400]
htop(main+0x95d)[0x804c81d]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb74d34d3]
htop[0x804efc5]
Aborted (core dumped)
Would it be possible to add a "Blank" meter to the list of available meters. This could simply be a text meter with no text in it. I would be useful to arrange the other meters without adding information I am not interested in just to line up the meters the way I want. Figured it would be an easy add.
$ htop
htop 1.0.2 aborting. Please report bug at http://htop.sf.net
Please include in your report the following backtrace:
htop[0x40ae3f]
/lib64/libc.so.6(+0x38540)[0x7f5888e44540]
htop(Panel_draw+0x2b6)[0x40fcb6]
htop(main+0x7a9)[0x406e69]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f5888e30bf5]
htop[0x4092a5]
Additionally, in order to make the above backtrace useful,
please also run the following command to generate a disassembly of your binary:
objdump -d which htop
> ~/htop.objdump
and then attach the file ~/htop.objdump to your bug report.
Thank you for helping to improve htop!
Aborted
I'm using the current git of htop and for example the darklue font of the nice or buffers entry in the related meters are on some terminals hard to read like on lxterminal (here is a screenshot: http://img2.picload.org/image/llradao/2014_04_24_10_25_28.png). But interestingly on other terminals like gnome-terminal the blue is easier to read. Maybe the blue can be slightly changed to be better readable on all common terminals.
I'm using the current git of htop and if many processes are spawned htop does also calculate them if they are not visible. Maybe htop can optimize this behavior and firstly calculate which processes are visible in the current environment and then processing only these processes. I think this could be really difficult (if not imposibble) on some sortings as they have to check normally all processes but maybe it is possible to do this on simple sortings like on PID.
I'm using the current git of htop and there is a case in which processes gets hidden. Just open htop in a terminal which uses only a part of the screen, go down to the last process and then maximize the terminal. Now htop displays only a few processes as the most processes are hidden behind the top.
OS: Linux sleipnir 3.13.7-1-ARCH #1 SMP PREEMPT Mon Mar 24 20:06:08 CET 2014 x86_64 GNU/Linux
htop[0x409d0f]
/usr/lib/libc.so.6(+0x35400)[0x7f3dbefd5400]
Is it possible to be able to collapse process tree's when in tree mode. Say if i have PID 23 with 22 processes who have PID 22 as their PPID. It would be nice to be able to collapse/expand the tree view of subprocesses based on the parent PID. We have some PID's with hundreds of subprocesses and it would really clean stuff up when searching (i realize there are search and filter functions but sometimes you dont know what you are looking for).
Thanks,
Sean
I set up a process filter, killed the only process matching the filter, and then pressed "k" again. To my surprise, htop core dumped. I tried it again and again, and it happened every time. I'm guessing this bug is caused by a missing check that there is actually a process currently selected.
The output is:
htop 1.0.1 aborting. Please report bug at http://htop.sf.net
Backtrace:
htop[0x407d3f]
/lib64/libc.so.6[0x3303a32ac0]
htop(main+0x1e7e)[0x40b2ce]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x3303a1ec9d]
htop[0x404f89]
[1] 28568 abort (core dumped) htop
I'm running zfsonlinux and htop is counting the ZFS ARC (memory) cache under normal used memory.
This is because ZFS doesn't use normal Linux memory cache but it's own version.
It would be useful if htop could detect if ZFS is running (maybe checking for /dev/zfs) and in that case show the memory used by ZFS cache in a different colour or maybe joined with the normal buffers/cache.
ARC used memory can be checked in /proc/spl/kstat/zfs/arcstats (size):
# grep ^size /proc/spl/kstat/zfs/arcstats
size 4 3533162592
With an uptime above 100 days htop displays a (!)
after the number of days.
This is misleading and people have been wasting time, thinking that it meant something was wrong with the machine. I suggest to replace the (!)
in UptimeMeter.c with the friendlier and not misleading ;-)
.
I patched my binary version:
perl -pi -e 's/days\(\!\)/days;-)/' /usr/bin/htop
and am pleased with the result:
Uptime: 315 days;-), 02:03:35
I'm using the current git of htop and zombie process are not fully displayed with their correct names/arguments. This can be tested on executing dash -c '(sleep 1 & sleep 10)' as after 1 second the first sleep process will turn into a zombie process and its argument will be cut.
Apologies for my being naive: there seems to be no configure scripts or makefiles in this repo? Thus how should one compile it?
Cheers,
Yannick
[[copy of earlier email to another mailing list]]
Hi.
It looks like the ticket creation is limited on SourceForge for htop (I could not create a feature request ticket or patch ticket), so I'm sending this patch to this mailing list [htop-general]. I hope you find it useful.
It provides the "display_base_name" feature, which will display the program basename if enabled.
FYI. /J
From c801f276ec55baccaa8ffb3abe5875ccbc3ed8ae Mon Sep 17 00:00:00 2001
From: Jskud [email protected]
Date: Sun, 12 Jan 2014 11:55:07 -0800
Subject: [PATCH 1/1] add display_base_name support
DisplayOptionsPanel.c | 1 +
Process.c | 9 ++++++++-
ProcessList.c | 2 ++
ProcessList.h | 1 +
Settings.c | 3 +++
5 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/DisplayOptionsPanel.c b/DisplayOptionsPanel.c
index 6153313..0feb665 100644
--- a/DisplayOptionsPanel.c
+++ b/DisplayOptionsPanel.c
@@ -84,6 +84,7 @@ DisplayOptionsPanel* DisplayOptionsPanel_new(Settings* settings, ScreenManager*
Panel_add(super, (Object_) CheckItem_new(strdup("Hide userland threads"), &(settings->pl->hideUserlandThreads), false));
Panel_add(super, (Object_) CheckItem_new(strdup("Display threads in a different color"), &(settings->pl->highlightThreads), false));
Panel_add(super, (Object*) CheckItem_new(strdup("Show custom thread names"), &(settings->pl->showThreadNames), false));
static inline void Process_writeCommand(Process* this, int attr, int baseattr, RichString* str) {
for (char *cp = this->comm; *cp; cp++) {
}
} else if (String_eq(option[0], "display_base_name")) {
this->pl->displayBaseName = atoi(option[1]);
At 8 tebibytes, field "overflows" and breaks the UI. At 16 and larger, field is truncated and display something like 38588, as if it were kibibytes.
Plain "top" displays all those values correctly. The bug in "htop" is confirmed on Linux and FreeBSD.
Here's sample Python program that uses so much memory:
(don't worry, it won't crash your computer because it doesn't allocate any physical pages at all)
import os
import mmap
TEBIBYTE = 2 ** 40
fd = os.open("/dev/zero", os.O_RDONLY)
lol = mmap.mmap(fd, TEBIBYTE * 8, prot=mmap.PROT_READ)
I'm using the current git of htop and on pressing F5 to enable the tree view the focus stays always on the same line (which is mostly not the same process) instead of following the correct process.
Really enjoy using htop. Would be great if there was an option to disable the Function Bar though as it takes up valuable screen space on a smaller screen. I'll see if I can work this out.
When I turn on "show custom thread names" the full path of application with its name get hidden and only the custom name of thread is shown.
This makes it hard to figure out to which process the thread belongs. I understand that some screens may have problems showing so long line, but it would be still nice to have an option to display both if user wants it.
It would be very useful if htop could monitor network activity, like iptraf.
Happened upon trying to enable "Detailed CPU time" after having added "CPU average" to the right column as text. Enabling "Detailed.." first and adding "CPU average" afterwards works.
htop 1.0.2 aborting. Please report bug at http://htop.sf.net
Please include in your report the following backtrace:
htop[0x4098e7]
/lib/x86_64-linux-gnu/libc.so.6(+0x36ff0)[0x7fe993216ff0]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x3c)[0x7fe993263c6c]
htop[0x41142b]
htop(ProcessList_scan+0x4cc)[0x41238c]
htop(ScreenManager_run+0x242)[0x4134b2]
htop(main+0x21c9)[0x407629]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fe993201ec5]
htop[0x407daf]
...
Aborted (core dumped)
Trying to upload the objdump - the system seems to accept images only
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.