Btop++ verbindet bei Systemüberwachung und Prozessmanagement hohen Komfort mit satter Geschwindigkeit.
Systemüberwachung und Prozessmanagement sind nicht unbedingt beliebte, aber unabdingbare Aufgaben bei der Arbeit mit Computern, egal, ob am Desktop oder auf Servern. Werkzeuge, die uns dabei unterstützen, sollten möglichst viele Informationen auf dem zur Verfügung stehenden Platz darbieten. Dabei erweisen sich terminalbasierte Tools als besonders praktisch, da sie sich nicht nur auf Desktops mit grafischer Oberfläche einsetzen lassen, sondern auch auf entfernten Rechnern.
Auf der Kommandozeile gilt Top (“table of processes”) als der Klassiker in dieser Sparte. Erstmals 1984 für BSD 4.1 verfügbar, steht es seit 1991 auch unter Linux zur Verfügung. Top zeigt eine laufend aktualisierte Liste aller Prozesse an und gibt nebenbei Aufschluss über die Prozessorlast, den Speicherverbrauch, die Anzahl der Tasks und weitere Daten (Abbildung 1). Allerdings lässt das Werkzeug eine gut erfassbare optische Aufbereitung der Werte vermissen.

Abbildung 1: Top ist der Urahn des Prozessmanagements unter Linux. Es verbraucht kaum Ressourcen, die Werte lassen sich aber visuell schwer erfassen.
2004 wurde Top mit der zeichenorientierten Benutzerschnittstelle Ncurses verheiratet und ist seitdem als Htop auf vielen Linux-Rechnern zu Hause. Die Darstellung fällt nicht zuletzt dank einer konfigurierbaren farbigen Oberfläche übersichtlicher aus als bei Top (Abbildung 2).

Abbildung 2: Mit Htop wurde die Aufbereitung der Informationen nicht zuletzt durch die farbige Darstellung übersichtlicher. Die Bedienung blieb allerdings wenig intuitiv.
Bashtop, Bpytop, Btop++
Dem Entwickler Jakob P. Liljenberg aka aristocratos schwebte eine andere grafische Umsetzung vor, die er Bashtop [1] nannte und die, wie der Name bereits erahnen lässt, als Bash-Skript verfasst ist (Abbildung 3). Um eine schnellere Aktualisierung der angezeigten Werte zu erreichen, schrieb er anschließend das Tool in Python um und veröffentlichte es unter dem Namen Bpytop [2].
Da auch diese Inkarnation seinen Ansprüchen noch nicht genügte, folgte ein Rewrite in C++, das den Namen Btop++ [3] erhielt. Fans des wandelbaren Prozessmanagers scherzen auf der Plattform Reddit, jetzt fehle eigentlich nur noch eine Portierung in Rust, die dann in einer Umsetzung in Assembler gipfeln könnte. Den Namen des fiktiven Assembler-Tools überlassen wir an dieser Stelle vertrauensvoll Ihrem Vorstellungsvermögen.

Abbildung 3: Der Entwickler von Bashtop wählte eine eingängige visuelle Aufbereitung der angezeigten Werte, die sich auch in den Nachfolgern Bpytop und Btop++ kaum noch änderte.
Damit sind wir mit Btop++ beim Thema dieses Artikels angekommen. Btop++ unterscheidet sich optisch nur wenig von seinen Vorgängern in Bash und Python, setzt aber das Ziel einer beschleunigten Aktualisierung der Werte fühlbar um. Zudem verbraucht das C++-Programm weniger CPU- und RAM-Ressourcen als die Vorgänger. Btop++ gibt es nicht nur für Linux, sondern auch für FreeBSD und MacOS, ein Windows-Port namens Btop4win ist bereits fertiggestellt und soll bald veröffentlicht werden. Im Windows Subsystem for Linux (WSL) funktioniert Btop bereits jetzt.
Die im Juni 2022 erschienene Version 1.2.8 führen vielen Distributionen bereits in ihren Paketquellen, bei anderen findet sich immerhin Btop++ 1.2.7. Bietet die von Ihnen verwendete Distribution lediglich eine ältere Version an, können Sie Btop auch unkompliziert per Installer einspielen oder selbst kompilieren [4]. Die zu Redaktionsschluss aktuelle Version 1.2.9 bietet gegenüber den Vorgängern eine Reihe von Bugfixes, Detailverbesserung und überarbeitete Themes (Abbildung 4).

Abbildung 4: Das Btop-Standard-Interface ist in Schwarz und dunklen Tönen gehalten. Das lässt sich durch die Auswahl eines anderen Themes schnell ändern.
Die Voraussetzungen für die bestmögliche Darstellung von Btop sind ein Terminal mit 24-Bit-Truecolor [5], UTF-8 als Kodierung und ein Font, der Braille unterstützt. Zudem benötigen Sie ein Terminal mit mindestens 80 x 24 Zeilen. Weicht die Zeichendarstellung bei Ihnen von der in den Screenshots [6] auf Github ab, finden Sie dazu Hilfe im Btop++-README [7].
Was kann Btop?
Btop zeigt in Echtzeit statistische Werte für CPU, Arbeitsspeicher, Speichermedien, Netzwerk und Prozesse, die es standardmäßig alle zwei Sekunden aktualisiert. Die Werte lassen sich per Tastatur und Maus manipulieren. Alle Schalter mit einem standardmäßig rot hervorgehobenen Zeichen reagieren auf Mausklicks, die Prozesstabelle lässt sich per Mausrad durchscrollen. Die Bedienung per Tastatur erweist sich jedoch als insgesamt praktischer und in jedem Fall schneller. Ein weiterer, in den Einstellungen aktivierbarer Bearbeitungsmodus ist der Vim-Mode. Damit nutzen Sie als Vim-User Ihr Muskelgedächtnis, um mit den Tasten [H], [J], [K] und [L] durch die Prozessliste zu navigieren.
Die Oberfläche stellt auf standardmäßig schwarzem Untergrund die verschiedenen Sektionen optisch gut voneinander getrennt mit jeweils eigenen Farben dar. Den oberen Bereich nimmt die CPU ein. Rechts zeigt Btop++ dort die einzelnen Kerne mit ihrer jeweiligen Last in Prozent und der Temperatur pro Kern an. Darüber erscheint, der Ladestatus der Batterie, falls das System über eine solche verfügt. Links visualisiert ein Graph in Echtzeit die Auslastung während der letzten Minuten.
Darunter teilt Btop++ die Ansicht in zwei Teile auf. Links in der Mitte platziert es die Daten für den Arbeits- und die Massenspeicher. Beim RAM teilt sich die Anzeige in die Gesamtmenge sowie belegten, gecachten und freien Arbeitsspeicher auf. Rechts daneben signalisieren kleine Graphen die Belegung der Speichermedien. Hier erscheinen interne und externe HDDs oder SSDs sowie, falls vorhanden, eine EFI-Boot-Partition. Der Bereich darunter gehört dem Netzwerk. Wie bei der CPU führt Btop++ rechts die numerischen Werte auf, während links ein Graph den Durchsatz des aus- und eingehenden Netzwerkverkehrs darstellt.
Die rechte Hälfte der Anzeige neben diesen beiden Bereichen nimmt die Prozessliste ein, die im oberen Bereich ein Feld mit Informationen zum gerade ausgewählten Prozess enthält. Darunter folgt eine Liste mit den laufenden Prozessen und weiteren Informationen.
Gut aufbereitet
Nach der Installation und dem ersten Start und einer visuellen Orientierung sollten Sie zunächst [Esc] oder [M] drücken, um zur Konfiguration zu gelangen. Im nun angezeigten Menü finden Sie die Punkte Options, Help und Quit. Unter Options verteilen sich die Einstellungen auf die Reiter general, cpu, mem, net und proc, wobei Letzteres für die Prozesse steht.
Im Reiter general wählen Sie zuoberst aus rund zwei Dutzend Themes das passende für sich aus. Des Weiteren legen Sie dort den Hintergrund und die Platzierung der Anzeigeboxen fest. Drei Optionen erlauben, das Aussehen der Graphen zu verändern. Wenn Sie möchten, können Sie dabei für jede Box individuell eine andere Darstellungsform wählen. Zudem schalten Sie hier die Anzeigen für die Batterie aus, wenn es sich um einen PC handelt. Über die weiteren Reiter beeinflussen Sie die jeweilige Komponente, was die Platzierung und Anzeige der Werte angeht (Abbildung 5).

Abbildung 5: Die Konfiguration von Btop nehmen Sie entweder über das grafische Menü oder direkt in der Konfigurationsdatei in Ihrem Home-Verzeichnis vor.
TIPP
Möchten Sie die Konfiguration lieber in einer Textdatei vornehmen, dann finden Sie diese unter ~/.config/btop/ zusammen mit dem Log und den einzelnen Themes.
Das Menü Help listet die Tastaturbefehle zur Steuerung von Btop auf. Die wichtigsten Steuerungsmöglichkeiten samt einer kurzen Erläuterung finden Sie in der Tabelle “Tastaturbedienung”.
|
Taste(n) |
Funktion |
|---|---|
|
[Esc]/[M]/[Umschalt]+[M] |
Zeigt das Hauptmenü an. |
|
[F1]/[H]/[Umschalt]+[H] |
Zeigt die Tastaturbelegung an. |
|
[F2]/[O]/[Umschalt]+[O] |
Zeigt das Untermenü Options an. |
|
[Strg]+[C]/[Q]/[Umschalt]+[Q] |
Beendet die Anwendung. |
|
[+]/[A]/[Umschalt]+[A] |
Verlängert das Aktualisierungsintervall um 100 ms. |
|
[-]+/[S]/[Umschalt]+[S] |
Verkürzt das Aktualisierungsintervall um 100 ms. |
|
[Pfeil-oben]/[Pfeil-unten] |
Bewegt die Auswahl durch die Prozessliste. |
|
Eingabetaste |
Zeigt Details zum ausgewählten Prozess. |
|
[Pos1]/[Ende] |
Springt zum Anfang / ans Ende der Prozessliste. |
|
[E] |
Wechselt zur Baumansicht der Prozessliste. |
|
[R] |
Dreht die Reihenfolge der Prozessliste. |
|
[F] |
Eingabe einer Zeichenkette zum Filtern von Prozessen. |
|
[C] |
Entfernt eingegebene Filter. |
|
[1] |
Zeigt / entfernt CPU-Box. |
|
[2] |
Zeigt / entfernt RAM- und HDD-Box. |
|
[3] |
Zeigt / entfernt Netzwerk-Box. |
|
[4] |
Zeigt / entfernt Prozessliste. |
Presets
Sehen wir uns nun an, wie Sie Btop einsetzen, um für Sie relevante Informationen und Details zu erhalten sowie Prozesse zu filtern und zu manipulieren.
In der obersten Zeile sehen Sie links die Schalter cpu, menu und preset. Das Menü haben wir bereits erforscht. Bei den drei Presets handelt es sich um Voreinstellungen für das Layout, die die Darstellung grafisch anders aufbereiten. Sie können im Reiter general bis zu neun Presets selbst definieren, sodass sich die Darstellung sehr individuell gestalten lässt.
Über die Tasten [1]+ bis [4]+ lassen sich einzelne Bereiche ausblenden, um mehr Raum für die anderen Anzeigen zu schaffen. Ein erneuter Druck auf die Taste blendet die jeweilige Anzeigebox wieder ein. [1] blendet den CPU-Bereich aus, [2] entfernt die Werte für RAM und Festplatten, [3] lässt die Netzwerkdaten verschwinden. Möchten Sie nur die Liste der Prozesse groß im Blick haben, drücken Sie [1],[2],[3]. Umgekehrt entfernen Sie durch einen Druck auf [4] den Prozessbereich.
Prozesse bearbeiten
Um die in Btop dargestellten Daten wie etwa die Prozessliste zu sortieren, zu filtern und zu manipulieren, klicken Sie auf die kleinen Schaltflächen in der jeweiligen Kopfzeile oder drücken den in der Schaltfläche farblich hervorgehobenen Buchstaben auf der Tastatur. Um beispielsweise die laufenden Prozesse zu filtern, klicken Sie auf die Schaltfläche Filter direkt über der Prozessliste oder drücken [F]+. Ein Druck auf [E]+ stellt die Prozesse als Baumliste dar, einer auf [R] dreht die Reihenfolge um. Wollen Sie sich die Prozesse pro CPU-Kern aufschlüsseln lassen, drücken Sie [C].
Wählen Sie einen Prozess aus und drücken die Eingabetaste, zeigt Btop++ oberhalb der Liste viele Details dazu an. Dazu zählen der Status, die Laufzeit, der RAM-Verbrauch, der Besitzer sowie der Elternprozess. Widerspenstige Prozesse können Sie hier mittels [T] oder Klick auf terminate beenden. Klappt das nicht, senden Sie dem Prozess mit [K] oder einem Klick auf kill das Signal zum harten Beenden. Weitere an einen Prozess zu sendende Signale führt ein Druck auf [S] oder ein Klick auf signals aus (Abbildung 6).

Abbildung 6: Einem ausgewählten Prozess können Sie Signale zusenden. Sie sehen neben der PID und dem Prozessnamen die anwendbaren Signale sowie Hinweise zur Handhabung der Funktion.
Insgesamt ist die Darstellung der Prozesseigenschaften und die Verwendung von Signalen in Btop++ im Vergleich zu Htop wesentlich einfacher und auch sicherer geworden.
Signale
Bei Signalen handelt es sich um einfache Systemnachrichten an einen laufenden Prozess, die meist dazu dienen, ihn anzuhalten oder zu beenden [8]. Direkt auf der Konsole zeigt das Kommando kill -l alle Signale an, die Sie an einen Prozess senden können.
Fazit
Nach einem langen Entwicklungsweg hat sich Btop++ zum mit Abstand besten Werkzeug für Systemüberwachung und Prozessmanagement auf der Konsole entwickelt. Die Anzeigen für CPU, RAM, Speichermedien und Netzwerk sind übersichtlich und lassen sich schnell erfassen. Die Manipulation von Prozessen fällt leichter denn je. Die simple Bedienung per Tastatur geht schon nach wenigen Stunden der Nutzung in Fleisch und Blut über, alle Funktionen lassen sich zudem auch mit der Maus ansteuern.
Falls Sie die farbliche Gestaltung der Oberfläche eher an ein Computer-Game als an ein ernst zu nehmendes Tool erinnert, dann können Sie die Optik von Btop++ dank verschiedenster Themes auch zu einer Darstellung etwa in Grautönen hin abändern. Die Konfigurierbarkeit reicht bis ins Detail und belegt die Hingabe des Entwicklers an seine Kreation. Das README auf der Github-Projektseite [9] liefert eine mehr als ausreichende Dokumentation. (jlu)
Die Konkurrenz
Als mögliche Alternativen zu Btop++ bieten sich das auf Python basierende Glances [10] sowie das in Rust verfasste Bottom [11] an.
Infos
- Bashtop: https://github.com/aristocratos/bashtop
- Bpytop: https://github.com/aristocratos/bpytop
- Btop++: https://github.com/aristocratos/btop
- Btop++ installieren: https://github.com/aristocratos/btop#installation
- Terminalemulatoren: https://github.com//termstandard/colors#terminal-emulators
- Btop++-Screenshots: https://github.com/aristocratos/btop#screenshots
- “Notice (Text rendering issues)”: https://github.com/aristocratos/btop#notice-text-rendering-issues
- SIG: https://de.wikipedia.org/wiki/Signal_(Unix)
- Btop++-README: https://github.com/aristocratos/btop#index
- Glances: https://github.com/nicolargo/glances
- Bottom: https://github.com/ClementTsang/bottom





