Website-Suche

/proc – Linux-Prozess- und Hardwareinformationen abrufen


Heute werden wir uns mit dem Inhalt des Verzeichnisses /proc befassen, um ein besseres Verständnis seiner Funktionalitäten zu entwickeln. Es ist wichtig zu beachten, dass das Verzeichnis /proc eine gemeinsame Funktion aller Linux-Distributionen ist, unabhängig von ihrer Variante oder Architektur.

Ein Missverständnis, das wir sofort klären müssen, ist, dass das Verzeichnis /proc KEIN herkömmliches Dateisystem im herkömmlichen Sinne des Begriffs ist.

Es handelt sich um ein virtuelles Dateisystem, das Informationen über Prozesse und andere systembezogene Daten innerhalb der procfs enthält. Dieses Dateisystem ist dem Verzeichnis /proc zugeordnet und wird während des Systemstartvorgangs gemountet.

Was ist /proc unter Linux?

Das Dateisystem /proc dient als Schnittstelle zu Kernel-Datenstrukturen und Laufzeitinformationen und bietet sowohl Benutzern als auch Anwendungen die Möglichkeit, durch Offenlegung auf detaillierte Informationen zu Prozessen, Systemkonfiguration, Hardware und mehr zuzugreifen diese Daten durch eine Hierarchie virtueller Dateien.

Um eine vollständige Liste der Dateien und Verzeichnisse im Dateisystem /proc anzuzeigen, können Sie wie gezeigt den Befehl ls verwenden.

ls /proc

Navigieren in /proc unter Linux

Wenn Sie zum Verzeichnis /proc navigieren, werden Sie feststellen, dass dort einige vertraut klingende Dateien und dann eine ganze Reihe nummerierter Verzeichnisse vorhanden sind, die jeweils einem laufenden Prozess auf dem System entsprechen.

cd /proc
ls

Diese nummerierten Verzeichnisse stellen die Prozesse dar, besser bekannt als Prozess-IDs (PIDs), und in ihnen einen Befehl, der sie belegt. Die Dateien enthalten Systeminformationen wie Speicher (meminfo), CPU-Informationen (cpuinfo) und verfügbare Dateisysteme.

Hier sind einige wichtige Dateien und Verzeichnisse, auf die Sie stoßen werden:

  • /proc/cpuinfo – Listen Sie Informationen über die CPU(s) im System auf, z. B. Modell, Geschwindigkeit und Anzahl der Kerne.
  • /proc/meminfo – Listen Sie Details zur Speichernutzung und Statistiken auf, die die Gesamtspeichermenge, den freien Speicher und den von jedem Prozess verwendeten Speicher enthalten.
  • /proc/filesystems – Enthält eine Liste aller Dateisysteme, die vom Kernel unterstützt werden.
  • /proc/sys – Konfigurations- und Laufzeitparameter für den Kernel auflisten.
  • /proc/loadavg – Zeigt die durchschnittliche Systemlast über verschiedene Zeitintervalle an, z. B. 1, 5 und 15 Minuten.
  • /proc/self – Ein symbolischer Link zum eigenen Verzeichnis des Prozesses.
  • /proc/stat – Enthält verschiedene Statistiken über das System, wie z. B. die Anzahl der laufenden Prozesse, die Anzahl der Interrupts und die in jedem CPU-Status verbrachte Zeit.
  • /proc/uptime – Enthält die Zeitspanne, die das System ausgeführt wurde.
  • /proc/PID – Enthält Informationen zu einem bestimmten Prozess, wobei PID die Prozess-ID ist.

Extrahieren von Systeminformationen

/proc/meminfo wird verwendet, um Informationen über die Speichernutzung und Statistiken eines Linux-Systems anzuzeigen, die eine Momentaufnahme verschiedener speicherbezogener Metriken enthalten, die für die Überwachung der Systemleistung und Ressourcennutzung nützlich sein können .

cat /proc/meminfo

Wie Sie sehen können, enthält /proc/meminfo eine Reihe von Informationen über den Speicher Ihres Systems, einschließlich der insgesamt verfügbaren Menge (in kb) und der freien Menge auf den beiden oberen Linien.

Wenn Sie den Befehl cat für eine der Dateien in /proc ausführen, wird deren Inhalt ausgegeben. Informationen zu allen Dateien sind in der Manpage verfügbar, indem Sie Folgendes ausführen:

man 5 /proc/<filename>

Ich gebe Ihnen einen kurzen Überblick über die Dateien von /proc:

  • /proc/cmdline – Kernel-Befehlszeileninformationen.
  • /proc/console – Informationen zu aktuellen Konsolen, einschließlich tty.
  • /proc/devices – Gerätetreiber, die derzeit für den laufenden Kernel konfiguriert sind.
  • /proc/dma – Informationen zu aktuellen DMA-Kanälen.
  • /proc/fb – Framebuffer-Geräte.
  • /proc/filesystems – Aktuelle Dateisysteme, die vom Kernel unterstützt werden.
  • /proc/iomem – Aktuelle Systemspeicherzuordnung für Geräte.
  • /proc/ioports – Registrierte Portregionen für die Eingabe-Ausgabe-Kommunikation mit dem Gerät.
  • /proc/loadavg – Durchschnittliche Systemlast.
  • /proc/locks – Dateien, die derzeit vom Kernel gesperrt sind.
  • /proc/meminfo – Informationen zum Systemspeicher (siehe Beispiel oben).
  • /proc/misc – Verschiedene Treiber, die für die verschiedenen Hauptgeräte registriert sind.
  • /proc/modules – Aktuell geladene Kernelmodule.
  • /proc/mounts – Liste aller vom System verwendeten Mounts.
  • /proc/partitions – Detaillierte Informationen zu den für das System verfügbaren Partitionen.
  • /proc/pci – Informationen zu jedem PCI-Gerät.
  • /proc/stat – Aufzeichnung oder verschiedene Statistiken, die seit dem letzten Neustart gespeichert wurden.
  • /proc/swap – Informationen zum Swap-Bereich.
  • /proc/uptime – Informationen zur Betriebszeit (in Sekunden).
  • /proc/version – Kernel-Version, GCC-Version und installierte Linux-Distribution.

Prozessinformationen extrahieren

In den nummerierten Verzeichnissen von /proc finden Sie einige Dateien und Links. Denken Sie daran, dass die Nummern dieser Verzeichnisse mit der PID des darin ausgeführten Befehls korrelieren.

Wenn Sie beispielsweise zu /proc/ navigieren, erhalten Sie Details wie:

  • /proc//cmdline – Befehlszeilenargumente, die zum Starten des Prozesses verwendet werden.
  • /proc//status – Detaillierte Statusinformationen, einschließlich Speichernutzung und Prozessstatistiken.
  • /proc//fd – Symbolische Links zu Dateien, die vom Prozess geöffnet wurden.

Lassen Sie uns ein Beispiel verwenden, um einen Ordner namens /proc/12 anzuzeigen.

cd /proc/12
ls

Wenn ich laufe:

cat /proc/12/status

Ich bekomme Folgendes:

Was bedeutet das also? Nun, der wichtige Teil steht ganz oben. Aus der Statusdatei können wir ersehen, dass dieser Prozess zu rcu_tasks_rude_kthread gehört. Sein aktueller Status ist idle und seine Prozess-ID ist offensichtlich 12.

Wir können auch sehen, wer dies ausführt, da UID und GID 0 sind, was darauf hinweist, dass dieser Prozess zum Root gehört. starker> Benutzer.

In jedem nummerierten Verzeichnis haben Sie eine ähnliche Dateistruktur, und die wichtigsten mit ihren Beschreibungen lauten wie folgt:

  • cmdline – Befehlszeile des Prozesses
  • environ – Umgebungsvariablen
  • fd – Dateideskriptoren
  • Limits – enthält Informationen über die Grenzen des Prozesses
  • Halterungen – verwandte Informationen

Sie werden auch mehrere Links im nummerierten Verzeichnis bemerken:

  • cwd – ein Link zum aktuellen Arbeitsverzeichnis des Prozesses
  • exe – Link zur ausführbaren Datei des Prozesses
  • root – Link zum Arbeitsverzeichnis des Prozesses

Dies sollte Ihnen den Einstieg erleichtern, sich mit dem Verzeichnis /proc vertraut zu machen. Es sollte auch Aufschluss darüber geben, wie eine Reihe von Befehlen ihre Informationen erhalten, z. B. uptime, lsof, mount und ps, um nur einige zu nennen.