Diskussion:Linux/Prozesse: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== Prozessstatus (ps) ==


(process status) zeigt die Prozesse mit ihrem Status an
== Entstehen und Vergehen ==


Ein Prozess entsteht, indem ein Elternprozess mittels des Systemrufes fork() einen neuen Prozess erzeugt (Ausnahme ist init, der einzige "von Hand generierte" Prozess). Dieser Kindprozess teilt sich alle Ressourcen mit dem Elternprozess, wesentliche Unterschiede sind nur ein eigener Stack und eine eigene PID.
ps [Optionen]


    Anhand des Rückgabewertes von fork() ist es den beiden Prozessen nun möglich, zu unterscheiden, ob es sich um den Vorfahren oder einen Nachkommen handelt.
Optionen
    In Abhängigkeit hiervon wird nun ein Kindprozess mittels des Systemrufes exec() ein neues Programm laden.
a zeigt alle aktive Prozesse
    Irgendwann wird ein Kindprozess seine Arbeit beenden und signalisiert diesen Zustand seinem Elternprozess durch eine entsprechende Nachricht.
c zeigt den Namen des Kommandos
    Obwohl der Kindprozess bereits jetzt aus Speicher und Prozesstabelle entfernt ist, muss dieses Signal noch verarbeitet werden. Für gewöhnlich zeichnet der Elternprozess dafür verantwortlich.
l langes Format
    Zwei Situationen könnten den "normalen Werdegang" durcheinander bringen:
m zeigt Speichernutzung
    Der Elternprozess ist andersweitig beschäftigt (befindet sich im Zustand D o.a.).
r zeigt nur die laufenden Prozesse
    In einem solchen Fall symbolisiert der Zustand Z das noch zu behandelnde Signal. Genau genommen durchläuft jeder Kindprozess die Laufbahn eines Zombies (Zeitspanne zwischen Ableben und Signalbehandlung), jedoch ist sie meist von so kurzer Dauer, dass man gar nichts davon mitbekommt.
u zeigt die Besitzer und Startzeit der Prozesse
    Der Elternprozess existiert nicht mehr (Programmfehler o.a.). Jetzt ist der init-Prozess für der Signalbehandlung verantwortlich
w breite Ausgabe, lange Zeilen werden nicht abgeschnitten
x zeigt Prozesse, die von keinem Terminal kontrolliert werden
S addiert die Prozessorzeit der Kindprozesse zu den Eltern
tTTY > kontrolliert werden
 
Bedeutung der Spalten
COMMAND der Name des Kommandos; Prozesse, die komplett in den Swapbereich ausgelagert sind, werden in Klammern angezeigt
TIME die verbrauchte Rechenzeit (Summe User- und Kernelmodus) im Format MM:SS
TTY die Nummer des kontrollierenden Terminals
UID die Benutzer-ID des Eigentümers dieses Prozesses
PID die Prozessnummer dieses Prozesses
PPID die Prozessnummer des Elternprozesses
PRI Priorität
TPGID die Prozessgruppe, der z. Z. das kontrollierende Terminal zu diesem Prozess gehört
SID die Session-ID des Prozesses (ID der Login-Shell)
STAT ist der Status des Prozesses; folgende Symbole sind möglich:
R lauffähig
S schlafend
W nicht mehr im Arbeitsspeicher

Version vom 16. Oktober 2020, 10:40 Uhr

Prozessstatus (ps)

(process status) zeigt die Prozesse mit ihrem Status an

ps [Optionen]

Optionen a zeigt alle aktive Prozesse c zeigt den Namen des Kommandos l langes Format m zeigt Speichernutzung r zeigt nur die laufenden Prozesse u zeigt die Besitzer und Startzeit der Prozesse w breite Ausgabe, lange Zeilen werden nicht abgeschnitten x zeigt Prozesse, die von keinem Terminal kontrolliert werden S addiert die Prozessorzeit der Kindprozesse zu den Eltern tTTY > kontrolliert werden

Bedeutung der Spalten COMMAND der Name des Kommandos; Prozesse, die komplett in den Swapbereich ausgelagert sind, werden in Klammern angezeigt TIME die verbrauchte Rechenzeit (Summe User- und Kernelmodus) im Format MM:SS TTY die Nummer des kontrollierenden Terminals UID die Benutzer-ID des Eigentümers dieses Prozesses PID die Prozessnummer dieses Prozesses PPID die Prozessnummer des Elternprozesses PRI Priorität TPGID die Prozessgruppe, der z. Z. das kontrollierende Terminal zu diesem Prozess gehört SID die Session-ID des Prozesses (ID der Login-Shell) STAT ist der Status des Prozesses; folgende Symbole sind möglich: R lauffähig S schlafend W nicht mehr im Arbeitsspeicher