/proc-Dateisystem
100%

Prozesse · Lektion 10

/proc-Dateisystem

Erfahre, wie Linux aktive Prozess- und Kernelinformationen über das virtuelle Dateisystem `/proc` bereitstellt.

Linux hängt procfs gewöhnlich unter /proc ein. Dieses virtuelle Dateisystem stellt vom Kernel erzeugte Schnittstellen als Dateien und Verzeichnisse dar; seine Inhalte sind keine gewöhnlichen dauerhaften Dateien auf einem Datenträger. Es stellt sowohl Prozesszustände als auch ausgewählte systemweite Kernelinformationen bereit.

Prozessverzeichnisse finden

Zeige den Einhängepunkt und die Einträge der obersten Ebene an mit:

$ findmnt /proc
$ ls /proc

Numerische Verzeichnisnamen entsprechen den im PID-Namensraum des Aufrufers sichtbaren Prozess-IDs. /proc/12345 repräsentiert beispielsweise die PID 12345, solange sie existiert. /proc/self ist ein symbolischer Link, der auf das eigene Verzeichnis des beobachtenden Prozesses verweist, und /proc/thread-self bezeichnet den aktuellen Thread.

Sichtbarkeit und Zugriff hängen von Zugangsdaten, Namensräumen, Sicherheitsrichtlinien und procfs-Einhängeoptionen wie hidepid ab. Ein Prozess kann sich zwischen dem Auflisten eines Verzeichnisses und dem Öffnen einer seiner Dateien beenden. Dieses Verschwinden ist ein normales Rennen, mit dem Inspektionswerkzeuge umgehen müssen.

Was repräsentiert das numerische Verzeichnis /proc/12345 gewöhnlich?

Prozessinformationen lesen

Prüfe die Statusdatei eines Prozesses, sofern die Berechtigungen dies erlauben:

$ less /proc/12345/status

Sie enthält Felder wie Prozessname, Zustand, IDs, Zugangsdaten, Speicherzähler, Capabilities und Signalmasken. Weitere nützliche Einträge sind:

  • /proc/12345/cmdline: durch Nullbytes getrennte Befehlszeilenargumente
  • /proc/12345/environ: umgebungsbezogene Einträge, zugriffsgesteuert und potenziell vertraulich
  • /proc/12345/fd/: symbolische Links, die offene Dateideskriptoren darstellen
  • /proc/12345/maps: aktuelle Speicherabbildungen
  • /proc/12345/cwd: symbolischer Link auf das aktuelle Arbeitsverzeichnis

Behandle diese Angaben als veränderliche Beobachtungen. Felder können je nach Kernelversion variieren, der Zustand eines Prozesses kann sich während des Lesens mehrerer Dateien ändern und einige Zähler besitzen Feinheiten, die ihre Namen allein nicht ausdrücken.

Welcher Pfad enthält für PID 12345 eine lesbare, feldorientierte Zusammenfassung?

Systemweite Schnittstellen lesen

Nicht jeder Eintrag unter /proc gehört zu einem Prozess. Beispiele sind:

  • /proc/cpuinfo für vom Kernel gemeldete CPU-Informationen
  • /proc/meminfo für Systemspeicherzähler
  • /proc/mounts für die Einhängeansicht des aktuellen Prozesses
  • /proc/loadavg für Lastmittelwerte und Informationen zu ausführungsbereiten Aufgaben
  • /proc/sys/ für Kernelparameter zur Laufzeit

Einige Dateien, insbesondere unter /proc/sys, sind beschreibbare Konfigurationsschnittstellen. Schreibe nicht in sie, nur weil sie wie gewöhnliche Dateien aussehen. Verstehe Parameter, Gültigkeitsbereich, Mechanismus zur dauerhaften Speicherung und Rücksetzweg, bevor du eine autorisierte Systemänderung vornimmst.

Welcher Eintrag stellt systemweite Speicherzähler und nicht den Status eines einzelnen Prozesses bereit?

`/proc` über Werkzeuge verwenden

Linux-Implementierungen von Werkzeugen wie ps, top und free beziehen einen großen Teil ihrer Daten aus procfs und anderen Kernel-Schnittstellen und beschriften, berechnen und formatieren sie anschließend. Bevorzuge diese Werkzeuge für Routinearbeiten, wenn sie das benötigte Feld bereitstellen. Lies /proc für bestimmte Einzelheiten oder Skripte nur dann direkt, wenn du die Dokumentation der Schnittstelle studiert hast.

Direkte Leser müssen Formate korrekt auswerten, mit verschwundenen Prozessen umgehen, vertrauliche Ausgaben schützen und dürfen nicht annehmen, dass ein einzelner Lesevorgang eine atomare Momentaufnahme des Systems darstellt.

Warum kann /proc/PID zwischen zwei Inspektionsbefehlen verschwinden?

Lektion abgeschlossen

Sie haben /proc-Dateisystem abgeschlossen

Du kannst procfs nun als aktive, zugriffsgesteuerte Kernel-Schnittstelle verwenden.

  • Ordne numerische /proc-Verzeichnisse sichtbaren PIDs zu.

  • Lies ausgewählte prozessbezogene Dateien unter Berücksichtigung von Rennen und Vertraulichkeit.

  • Unterscheide Prozessverzeichnisse von systemweiten Schnittstellen.

  • Bevorzuge dokumentierte Werkzeuge und Formate für zuverlässige Routineprüfungen.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Prozesse