GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Command Basics:7 Befehle für das Prozessmanagement

Angenommen, Sie erkunden zum ersten Mal die Linux-Befehlszeile oder steigen in die Linux-Administration ein. In diesem Fall ist ein grundlegendes Verständnis dafür, wie man sich im Terminal bewegt und grundlegende Aufgaben erledigt, unerlässlich. Um Ihnen zu helfen, diese Konzepte zu verstehen, sehen Sie sich meine beiden vorherigen Artikel an:

  • 10 Befehle für den Einstieg am Terminal
  • 10 weitere Befehle zum Bearbeiten von Dateien

Wenn Sie sich jedoch mit diesen Konzepten wohlfühlen, werden wir Ihr Linux-Wissen in diesem Artikel etwas weiter vertiefen. Wir werden uns mit Prozessen und deren Verwaltung befassen.

Was genau ist also ein Prozess? ?

Unter Linux ist ein Prozess jede aktive (laufende) Instanz eines Programms. Aber was ist ein Programm ? Technisch gesehen ist ein Programm jede ausführbare Datei, die auf Ihrem Computer gespeichert ist. Jedes Mal, wenn Sie ein Programm ausführen, haben Sie einen Prozess erstellt. Auf einer grundlegenden Ebene ist dies ziemlich einfach zu handhaben, und das werden wir uns heute ansehen.

Was Sie für den Einstieg benötigen

Ich empfehle Ihnen, auf Ihrer bevorzugten virtuellen Maschine mitzumachen. Auf diese Weise können Sie versuchen, ohne Konsequenzen zu scheitern (was definitiv der beste Weg ist, um sich am Terminal wohl zu fühlen).

Für diese Demo werde ich den Schlafvorgang für 500 Sekunden starten. Dieser Ansatz ermöglicht es Ihnen, den Prozess zu sehen, ohne dass ich bedeutende Änderungen an meinem System vornehmen muss.

[tcarrigan@client ~]$ sleep 500
^Z
[1]+  Stopped                 sleep 500

Ich habe den Vorgang dann mit Strg+Z gestoppt damit wir unser Terminal benutzen können.

1. Prozesse auflisten

Um Ihre derzeit aktiven Prozesse anzuzeigen, verwenden Sie den ps Befehl:

[tcarrigan@client ~]$ ps
    PID TTY          TIME CMD
   2648 pts/0    00:00:00 bash
   3293 pts/0    00:00:00 sleep
   3300 pts/0    00:00:00 ps

Hier erhalten Sie ein paar Informationen über die aktiven Prozesse auf Ihrem System. Achten Sie auf die PID (eindeutige Prozess-ID), die TIME (Zeitdauer, die der Prozess ausgeführt wurde) und die CMD (der Befehl, der zum Starten des Prozesses ausgeführt wird).

2. Ausführliche Liste (Prozesse)

Um eine unglaublich detaillierte Liste von Prozessen anzuzeigen, können Sie ps aux verwenden Befehl.

  • a - alle Benutzer
  • u - zeigt den Benutzer/Eigentümer
  • x - zeigt Prozesse an, die nicht im Terminal ausgeführt werden (was die Ausgabe ziemlich lang macht)

Sie können den Befehl hier sehen (Ausgabe der Länge nach bearbeitet):

[tcarrigan@client ~]$ ps aux
USER         PID %CPU %MEM   VSZ    RSS   TTY  STAT  START    TIME   COMMAND
tcarrig+    3293  0.0  0.0 215292   520 pts/0    T    13:41   0:00 sleep 500
root        3380  0.0  0.0      0     0 ?        I    13:45   0:00 [kworker/1:1-mm_percpu_wq]
root        3381  0.0  0.0      0     0 ?        I    13:45   0:00 [kworker/1:3]
root        3398  0.0  0.0      0     0 ?        I    13:46   0:00 [kworker/3:2-ata_sff]
root        3481  0.0  0.0      0     0 ?        I    13:50   0:00 [kworker/u8:2-flush-253:0]
root        3482  0.0  0.0      0     0 ?        I    13:50   0:00 [kworker/0:1-events]
root        3483  0.0  0.0      0     0 ?        I    13:50   0:00 [kworker/0:2]
root        3508  0.0  0.0      0     0 ?        I    13:51   0:00 [kworker/3:0-ata_sff]
root        3511  0.0  0.0  18892  7732 ?        S    13:52   0:00 systemd-userwork
root        3512  0.0  0.0  18892  7656 ?        S    13:52   0:00 systemd-userwork
root        3513  0.0  0.0  18892  7656 ?        S    13:52   0:00 systemd-userwork
root        3566  0.4  0.0 432792  8024 ?        Ssl  13:54   0:00 /usr/libexec/fprintd
tcarrig+    3598  0.0  0.0 228208  3948 pts/0    R+   13:54   0:00 ps aux

3. Kill durch PID

Ein Prozess wird unweigerlich hängen bleiben und Sie müssen ihn kill es. Je mehr Zeit Sie an der CLI verbringen, desto wahrscheinlicher ist es, dass Sie kill benötigen Befehl. Der genaueste Weg, einen Prozess zu identifizieren, ist die Prozess-ID (PID).

Verwenden Sie die folgende Syntax:

[tcarrigan@client ~]$ kill PID

Dieser Befehl sendet das SIGTERM Signal. Wenn Sie es jedoch mit einem festgefahrenen Prozess zu tun haben, fügen Sie den -9 hinzu Option.

[tcarrigan@client ~]$ ps
    PID TTY          TIME CMD
   2648 pts/0    00:00:00 bash
   3293 pts/0    00:00:00 sleep
   4684 pts/0    00:00:00 sleep
  40527 pts/0    00:00:00 sleep
  40540 pts/0    00:00:00 ps
[tcarrigan@client ~]$ sudo kill -9 3293
[sudo] password for tcarrigan: 
[1]   Killed                  sleep 500

4. Kill nach Name/Schlüsselwort

Verwenden Sie den killall Befehl zum Beenden eines Prozesses nach Namen. Dieser Befehl beendet alle Prozesse mit dem von Ihnen angegebenen Schlüsselwort/Namen.

Die Syntax lautet:

[tcarrigan@client ~]$ killall sleep

Dies würde den gesamten sleep beenden Prozesse, die auf dem System aktiv sind (die -9 Option funktioniert auch hier). Hier ist ein Beispiel:

[tcarrigan@client ~]$ ps
    PID TTY          TIME CMD
   2648 pts/0    00:00:00 bash
   4684 pts/0    00:00:00 sleep
  40527 pts/0    00:00:00 sleep
  40540 pts/0    00:00:00 ps
[tcarrigan@client ~]$ killall -9 sleep 
[2]-   Killed                  sleep 500
[3]+   Killed                  sleep 500

Diese nächsten beiden Befehle gehen Hand in Hand. Sie ermöglichen es Ihnen, Hintergrundbefehle zu verschieben/zu verwalten. Ich werde einen grundlegenden Blick auf die folgende Syntax werfen; Für eine eingehende Betrachtung dieser Befehle lesen Sie jedoch meinen vorherigen Artikel zu diesem Thema.

5. Hintergrundjobs auflisten und Hintergrundjobs fortsetzen

Um Hintergrundjobs aufzulisten und zu verwalten, verwenden wir den bg Befehl. Ich habe ein neues sleep 500 gestartet Prozess und stoppte ihn dann und schickte ihn in den Hintergrund. Daher sehen wir es aufgelistet, wenn bg ausgeführt wird unten:

[tcarrigan@client ~]$ bg
[1]+ sleep 500 &

6. Bringen Sie den neuesten Job in den Vordergrund

Dazu verwenden wir den fg Befehl. Dies bringt den zuletzt ausgeführten Job/Prozess in den Vordergrund. Das folgende Beispiel ist eine Fortsetzung des obigen Befehls. Die sleep 500 Prozess, der sich im Hintergrund befindet, ist jetzt im Hintergrund aktiv. Bringen wir es ans Licht...

[tcarrigan@client ~]$ fg
sleep 500

Dieser Befehl bringt uns zu unserem letzten Befehl in dieser Liste.

7. Bringen Sie einen bestimmten Job in den Vordergrund

Verwenden Sie den fg Befehl erneut, aber wählen Sie einen bestimmten Job aus, der in den Vordergrund gebracht werden soll (anstelle des neuesten). Dazu fügen wir dem Befehl einfach den Job-/Prozessnamen hinzu.

[tcarrigan@client ~]$ fg XXXample

Dies bringt Job XXXample in den Vordergrund.

[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ] 

Abschluss

In den heutigen Linux Command Basics haben wir uns mit Prozessen und deren Verwaltung befasst. Sie können jetzt allgemeine Prozessverwaltungsaufgaben erledigen – alles vom Auflisten und Löschen bis hin zum Wechseln zwischen Hintergrund und Vordergrund. Wenn es andere allgemeine Linux-Administrationsbereiche gibt, für die Sie eine spezielle Liste von Befehlen sehen möchten, senden Sie eine E-Mail an das Team unter [email protected], und ich werde mein Bestes tun, um diese für Sie zu konkretisieren.


Linux
  1. 20 wichtige Linux-Befehle für jeden Benutzer

  2. 30 Übungen zu Linux-Prozessen für Systemadministratoren

  3. Linux-Befehlszeilentipps zur Steigerung der Produktivität

  4. Linux-Echo-Befehl

  5. Grundlagen der Linux-Befehlszeile – Ausführen von Befehlen über die Befehlszeile

Kill-Befehl unter Linux

Linux Top Command Tutorial für Anfänger (8 Beispiele)

30 Top-Befehlsbeispiele für die Überwachung unter Linux

Die 50 nützlichen Linux-IP-Befehle für Netzwerkadministratoren

Befehle für das Prozessmanagement in Linux

UNIX / Linux:7 praktische Beispiele für PS-Befehle zur Prozessüberwachung