[LINUX] Untersuchte Prozesse und Jobs

Ich hatte keine Ahnung von Prozessen und Jobs, also habe ich einige Nachforschungen angestellt.

Was ist ein Prozess?

Ein Prozess ist ein Programm, das im Speicher ausgeführt wird.

Jeder Prozess erhält eine eindeutige ID, die als Prozess-ID bezeichnet wird und die eine ordnungsgemäße Verwaltung des Prozesses ermöglicht. Die Prozess-ID ändert sich erst, wenn der Prozess beendet ist.

Der Prozess hat einen Ausführungsbenutzer, der wie der Eigentümer der Datei festgelegt ist, und kann die Prozesse anderer Personen nicht ausführen.

Wenn ein neuer Prozess erstellt wird, wird aus dem vorhandenen Prozess ein anderer Prozess erstellt. Der ursprüngliche Prozess wird als übergeordneter Prozess und der erstellte Prozess als untergeordneter Prozess bezeichnet. Als konkretes Beispiel wird bei der Ausführung des Befehls ls der übergeordnete Prozess zur Shell und der untergeordnete Prozess zum Prozess des Befehls ls.

Unter Linux wird zusätzlich zu dem Prozess, der vom angemeldeten Benutzer ausgeführt wird, der Prozess der Verwaltung des Linux-Systems selbst von Anfang an ausgeführt. Viele davon werden mit Superuser-Berechtigungen ausgeführt

ps Befehl

Ein Befehl, der den aktuell ausgeführten Prozess anzeigt. Bei Ausführung ohne Optionen werden nur die Prozesse angezeigt, die im aktuellen Terminal ausgeführt werden.

Ausführungsbeispiel

PID TTY           TIME CMD
89124 ttys000    0:00.05 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server <=Iterm Prozess
89126 ttys000    0:00.32 -zsh <=zsh verwandt
88296 ttys001    0:01.40 /usr/local/bin/zsh -l <=zsh verwandt

Optionen für den Befehl ps

Einführung in ein Beispiel für den Befehl ps

x Option

Alle vom aktuellen Benutzer ausgeführten Prozesse anzeigen

eine Option

Fügen Sie die Option a zusätzlich zur Option x hinzu, um alle auf Ihrem System ausgeführten Prozesse anzuzeigen, nicht nur Ihre eigenen

u Option

Außerdem werden die CPU- und Speicherauslastungsraten usw. angezeigt.

Häufig verwendete Optionen

Eine Kombination häufig verwendeter Maschinenoptionen beim Ausführen von ps-Befehlen

UX-Option

Zeigen Sie alle Prozesse des Benutzers an, der den Befehl ps ausgeführt hat, zusammen mit detaillierten Informationen Machen

Aux-Option

Zeigen Sie alle Benutzerprozesse mit detaillierten Informationen an

Was ist ein Job?

Eine Verarbeitungseinheit, wenn sie von der Shell aus betrachtet wird, wird als Job bezeichnet (ein Prozess ist eine Verarbeitungseinheit, wenn er vom Kernel aus betrachtet wird). Eine in die Shell-Befehlszeile eingegebene Zeile wird zu einem Job

Ausführungsbeispiel history | grep git

Prozesse haben eine systemweit eindeutige Prozess-ID, Jobs haben jedoch eine Jobnummer für jede Shell. Mit anderen Worten, wenn Sie mehrere Terminals öffnen und mehrere Shells gleichzeitig verwenden, werden die Auftragsnummern dupliziert.

Jobs Befehl

Befehl zum Anzeigen der aktuellen Jobliste

Beruflicher Status

Vordergrund

Ein Zustand, in dem die Verarbeitung ausgeführt wird, während der Benutzer interaktiv arbeitet

fg Befehl

Befehl zum Ausführen eines Jobs im Vordergrund

Hintergrund

Ein Zustand, in dem die Verarbeitung ausgeführt wird, ohne dass der Benutzer mit ihr interagiert.

bg Befehl

Befehl, um die Verarbeitung in den Hintergrund zu stellen

Halt

Ein Zustand, in dem die Verarbeitung vorübergehend unterbrochen wird Ctrl + z Beenden Sie die Verarbeitung vorübergehend

Zusammenfassung der Jobstatusübergänge

Befehl töten

Ein Befehl zum Beenden eines Prozesses oder Hintergrundjobs. Um genau zu sein, der Befehl "Signal senden". Ein Signal ist ein Signal, das an einen Prozess gesendet wird.

Es verhält sich je nach Signaltyp auf verschiedene Arten, z. B. "Ende", "Stopp" und "Neustart". Durch Senden eines Signals an einen laufenden Prozess ist es möglich, zwischen den Prozessen zu kommunizieren.

Signal per Kill-Befehl gesendet

Die Art des vom Befehl kill gesendeten Signals kann durch kill- <Signalname> angegeben werden. Wenn der Signalname weggelassen wird, wird das Signal TERM als Standardwert gesendet. Das heißt, die folgenden zwei Befehle haben dieselbe Bedeutung.

kill 100 kill =TERM 100

TERM bedeutet beenden.

Zusätzlich hat das Signal eine Signalnummer, und Optionen können durch die Signalnummer angegeben werden. Die Signalnummer von TERM ist 15, und kill -15 100 hat dieselbe Bedeutung wie der obige Befehl.

Sie können den Signaltyp mit kill -l überprüfen

$ kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

Strg + z sendet ein TSTP-Signal (Stopp) und Strg + c sendet ein INT-Signal (Ende) für einen Vordergrundjob.

Recommended Posts

Untersuchte Prozesse und Jobs
Informationen zu LINUX-Dateien und -Prozessen