Wer sich für den Status eines Linux-Systems interessiert, der kann auf eine ganze Reihe von Kommandos des Pakets sysstat zurückgreifen. Viele weitere Informationen liefert das
Das virtuelle »/proc«-Filesystem offeriert viele Linux-Interna in Dateiform. Der Kernel erzeugt es beim Booten dynamisch, es kann keine Informationen über die Laufzeit des Kernels hinaus speichern. Es enthält eine Unmenge an Details, deren Interpretation allerdings oft eine gute Portion Know-how voraussetzt. Im Folgenden diskutiert der Artikel einige eher einfache Beispiele.
Was läuft?
Das beginnt mit der Frage, welcher Kernel eigentlich gerade läuft und mit welchen Optionen er gestartet wurde. Die Antwort gibt »/proc/cmdline«. Im Beispiel aus Listing 1 läuft ein Kernel 5.4. Das Root-Filesystem findet sich auf dem Device mit der angegebenen UUID und wird während des Bootens read-only eingehängt. Boot-Meldungen unterdrückt das System und zeigt stattdessen einen Startbildschirm (Splashscreen) an, der vor dem Login das virtuelle Terminal 7 nutzt.
Listing 1
Welcher Kernel läuft?
# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.4.0-40-generic root=UUID=a2760abe-0d6f-41c1-bf98-4508f3f92367 ro quiet splash vt.handoff=7
Neben dem Kernel hat jeder laufende Prozess unter »/proc« ein eigenes Verzeichnis, dessen Name seine PID ist. Nehmen wir an, wir hätten ein einfaches Shell-Skript mit der PID 36991: Dann enthält etwa »/proc/36991/cmdline« die Befehlszeile, mit der das Skript gestartet wurde.
Das Unterverzeichnis »/proc/36991/fd« versammelt File-Deskriptoren, die wie »STDIN«, »STDOUT« und »STDERR« »0«, »1« und »2« heißen und Links auf diese Standardkanäle der Shell sind. Das folgende Kommando schreibt also in das vom Skript benutzte Terminalfenster:
# echo "hallo" > /proc/36991/fd/1
Bei »/proc/36991/cwd« handelt es sich um einen Link auf das aktuelle Arbeitsverzeichnis des Skripts, »/proc/36991/environ« enthält alle für das Skript geltenden Umgebungsvariablen und deren Werte.
»/proc/36991/status« kennt alle Informationen über den Prozess, die auch Ps mit seinen vielen Optionen verraten würde, plus einige zusätzliche und noch detaillierte Angaben. (Tatsächlich besorgt sich Ps seine Informationen aus »/proc«). Zu den Informationen gehören etwa reale und effektive UID und GID desjenigen, der das Skript gestartet hat, vielfältige Angaben zur Speichernutzung, empfangene, blockierte oder ignorierte Signale, die an den Prozess gesendet wurden, eine Liste der CPUs, die dem Prozess zur Verfügung stehen, die Anzahl der absolvierten Kontext-Switches und so weiter.
Daneben enthält »/proc« auch noch etliche allgemeinere Informationen mit sehr vielen Details. Dazu gehört »/proc/cpu«, wo sich zu jedem virtuellen Prozessor ausführliche Einzelheiten wie Modell, Taktfrequenz, Cache-Größe und Addressbusbreite finden. Die Datei »/proc/devices« listet alle Character- und Blockgeräte, »/proc/ioports« alle I/O-Ports und deren Adressen. Unter »/proc/net« gibt es ein ganzes Unterverzeichnis mit allen möglichen Netzwerkstatistiken.
Zu guter Letzt bietet das virtuelle Dateisystem auch Leistungswerte, zum Beispiel in »/proc/loadavg« die Mittelwerte der Auslastung über die letzten 1, 5 und 15 Minuten. Eine detaillierte Auflistung aller Informationen nebst Erklärungen bietet ein eigener Abschnitt in der Kernel-Dokumentation [1].
Infos
-
Infos zum »/proc«-Dateisystem: https://www.kernel.org/doc/Documentation/filesystems/proc.txt






