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

Verwalten von Prozessen in Ubuntu Linux

Das Verwalten von Prozessen in Linux ist ein wichtiges Thema, das Sie lernen und verstehen müssen, da es ein Multitasking-Betriebssystem ist und viele Prozesse gleichzeitig ausgeführt werden. Linux bietet viele Tools zum Verwalten von Prozessen, wie das Auflisten laufender Prozesse, das Beenden von Prozessen, das Überwachen der Systemnutzung usw. In Linux wird jeder Prozess durch seine Prozess-ID (PID) dargestellt. Es gibt einige andere Attribute für den Prozess wie Benutzer-ID und Gruppen-ID, wenn ein Benutzer oder eine Gruppe den Prozess ausführt. Manchmal müssen Sie einen Prozess beenden oder mit ihm interagieren, daher sollten Sie wissen, wie Sie diese Prozesse verwalten, damit Ihr System reibungslos läuft. Unter Linux können Prozesse mit Befehlen wie ps, pstree, pgrep, pkill, lsof, top, nice, renice und kill, verwaltet werden usw.

Prozesse

Das Ausführen einer Instanz eines Programms wird als Prozess bezeichnet. In Linux wird die Prozess-ID (PID) verwendet, um einen Prozess darzustellen, der für jeden Prozess charakteristisch ist. Es gibt zwei Arten von Prozessen,

  • Hintergrundprozesse
  • Vordergrundprozesse

Hintergrundprozesse

Hintergrundprozesse starten im Terminal und laufen von selbst ab. Wenn Sie einen Prozess im Terminal ausführen, wird seine Ausgabe in einem Terminalfenster angezeigt, und Sie können damit interagieren, aber wenn Sie nicht mit dem Prozess interagieren müssen, können Sie ihn im Hintergrund ausführen. Wenn Sie einen Prozess im Hintergrund ausführen möchten, fügen Sie einfach ein „&“-Zeichen am Ende des Befehls hinzu, und er wird im Hintergrund ausgeführt. Dadurch sparen Sie Zeit und können einen anderen Prozess starten. Um im Hintergrund laufende Prozesse aufzulisten, verwenden Sie den Befehl „Jobs“. Es zeigt alle im Hintergrund laufenden Prozesse an.

Beispielsweise ist ein Upgrade unter Linux ein langer Prozess. Es dauert zu lange, und wenn Sie andere Dinge tun möchten, während das System aktualisiert wird, verwenden Sie den Hintergrundbefehl.

[email protected]:~$ sudo apt-get upgrade -y &

Es beginnt im Hintergrund zu laufen. Und Sie können in der Zwischenzeit mit anderen Programmen interagieren. Sie können überprüfen, wie viele und welche Prozesse im Hintergrund laufen, indem Sie diesen Befehl eingeben.

[email protected]:~$ Jobs
[1]+ Ausführen von sudo apt-get upgrade -y &

Vordergrundprozesse

Alle Prozesse, die wir im Terminal ausführen, werden standardmäßig als Vordergrundprozesse ausgeführt. Wir können sie mit Vordergrund- und Hintergrundbefehlen verwalten.

Sie können jeden in Jobs aufgelisteten Hintergrundprozess in den Vordergrund bringen, indem Sie den Befehl „fg“ gefolgt von der Hintergrundprozessnummer eingeben.

[email protected]:~$ fg %1
sudo apt-get upgrade -y

Und wenn Sie diesen Prozess in den Hintergrund holen möchten, geben Sie diesen Befehl ein.

[E-Mail-geschützt]:~$ bg %1

Auflisten und Verwalten von Prozessen mit dem Befehl ps

Der Auflistungsprozess mit dem Befehl ps ist eine der ältesten Möglichkeiten, die laufenden Prozesse des Terminals anzuzeigen. Geben Sie den Befehl ps ein, um aufzulisten, welche Prozesse ausgeführt werden und wie viel Systemressourcen sie verwenden und wer sie ausführt.

[email protected]:~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl+ 13:07 0:00 Shell
Jim 1564 5.2 0.9 881840 78704 tty2 Sl+ 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 Pkt./0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 11836 1.0 R+ 3412 Pkt :19 0:00 ps u
…Schnipsel…

Die Benutzerspalte zeigt den Benutzernamen in der obigen Tabelle und PID zeigt die Prozess-ID. Sie können die PID verwenden, um einen Prozess zu beenden oder das Kill-Signal an einen Prozess zu senden. %CPU zeigt den CPU-Prozentsatz des Prozessors und %MEM zeigt die Arbeitsspeicherauslastung mit wahlfreiem Zugriff. Um einen Prozess zu beenden, geben Sie ein.

[E-Mail-geschützt]:~$ kill [ Prozess-ID (PID) ]

oder

[E-Mail-geschützt]:~$ kill -9 [ Prozess-ID (PID) ]

Verwenden Sie den Befehl ps aux, um alle laufenden Prozesse anzuzeigen, und fügen Sie eine Pipe hinzu, um sie der Reihe nach anzuzeigen.

[email protected]:~$ ps aux | weniger

Wenn Sie die Spalten neu anordnen möchten, können Sie dies tun, indem Sie ein Flag -e hinzufügen zum Auflisten aller Prozesse und -o für die Angabe der Spalten durch Schlüsselwörter im ps-Befehl.

[email protected]:~$ps -eo pid,user,uid,%cpu,%mem,vsz,rss,comm
PID USER UID %CPU %MEM VSZ RSS COMMAND
1 root 0 0.1 0.1 167848 11684 mit System
3032 Jim 1000 16,5 4,7 21744776 386524 Chrom
…schnipp…

Optionen für den Befehl ps.

Die Option u wird zum Auflisten der Prozesse durch die Benutzer verwendet.

[email protected]:~$ ps u

Die Option f wird verwendet, um die vollständige Liste anzuzeigen.

[email protected]:~$ ps f

x-Option wird verwendet, um Informationen über den Prozess ohne Terminal anzuzeigen.

[E-Mail-geschützt]:~$ ps x

Die Option wird verwendet, um erweiterte Informationen anzuzeigen.

[email protected]:~$ ps e

eine Option wird verwendet, um alle Prozesse mit dem Terminal aufzulisten.

[email protected]:~$ ps a

Die Option v wird verwendet, um das Format des virtuellen Speichers anzuzeigen.

[email protected]:~$ ps v

Flags für den ps-Befehl.

-e Flag wird verwendet, um jeden Prozess auf dem System zu sehen.

[email protected]:~$ ps -e

Das Flag -u wird verwendet, um Prozesse anzuzeigen, die als Root ausgeführt werden.

[email protected]:~$ ps -u

-f Flag wird für eine vollständige Liste der Prozesse verwendet.

[email protected]:~$ ps -f

-o Flag wird verwendet, um die Prozesse in der gewünschten Spalte aufzulisten.

[email protected]:~$ ps -o
pstree

pstree ist ein weiterer Befehl zum Auflisten der Prozesse; es zeigt die Ausgabe in einem Baumformat.

[email protected]:~$ pstree

Optionen für den Befehl pstree

-n wird für Sortiervorgänge nach PID verwendet.

[email protected]:~$ pstree -n

-H wird zum Hervorheben von Prozessen verwendet.

[email protected]:~$ pstree -H [PID]
[email protected]:~$ pstree -H 6457

-a wird zum Anzeigen der Ausgabe verwendet, einschließlich Befehlszeilenargumenten.

[E-Mail-geschützt]:~$ pstree -a

-g wird verwendet, um Prozesse nach Gruppen-ID anzuzeigen.

[E-Mail-geschützt]:~$ pstree -g

-s wird für die Aussaat des Baumes oder einen bestimmten Prozess verwendet.

[email protected]:~$ pstree -s [PID]
[email protected]:~$ pstree -s 6457

[Benutzername] wird verwendet, um Prozesse anzuzeigen, die einem Benutzer gehören.

[email protected]:~$ pstree [Benutzername]
[email protected]:~$ pstree jim
pgrep

Mit dem Befehl pgrep können Sie anhand bestimmter Kriterien einen laufenden Prozess finden. Sie können den vollständigen Namen oder die Abkürzung des Prozesses verwenden, um nach Benutzernamen oder anderen Attributen zu suchen. Der pgrep-Befehl folgt dem folgenden Muster.

[email protected]:~$ Pgrep [option] [pattern]
[email protected]:~$ pgrep -u jim chrome
Optionen für den pgrep-Befehl

-ich wird für die Suche ohne Berücksichtigung der Groß-/Kleinschreibung verwendet

[email protected]:~$ Pgrep -i firefox

-d dient zur Begrenzung der Ausgabe

[E-Mail-geschützt]:~$ Pgrep -u jim -d:

-u wird verwendet, um Prozesse zu finden, die einem Benutzer gehören

[E-Mail-geschützt]:~$ Pgrep -u jim

-a wird verwendet, um Prozesse zusammen mit ihren Befehlen aufzulisten

[E-Mail-geschützt]:~$ Pgrep -u jim -a

-c wird verwendet, um die Anzahl der übereinstimmenden Prozesse anzuzeigen

[E-Mail-geschützt]:~$ Pgrep -c -u jim

-l wird zum Auflisten von Prozessen und deren Namen verwendet

[email protected]:~$ Pgrep -u jim -l
pkill

Mit dem Befehl pkill können Sie anhand bestimmter Kriterien ein Signal an einen laufenden Prozess senden. Sie können den vollständigen Namen oder die Abkürzung des Prozesses verwenden, um nach Benutzernamen oder anderen Attributen zu suchen. Der pgrep-Befehl folgt dem folgenden Muster.

[email protected]:~$ Pkill [Optionen] [Patterns]
[email protected]:~$ Pkill -9 chrome
Optionen für den pkill-Befehl

–Signal wird zum Senden eines Signals verwendet, z. SIGKILL, SIGTERM usw.

[email protected]:~$ Pkill – signalisiert SIGTERM vscode

-HUP wird zum Neuladen eines Prozesses verwendet

[E-Mail-geschützt]:~$ Pkill -HUP syslogd

-f wird zum Töten von Prozessen basierend auf der vollständigen Befehlszeile verwendet.

[E-Mail-geschützt]:~$ Pkill -f „ping 7.7.7.7“

-u wird verwendet, um alle Prozesse zu beenden, die einem Benutzer gehören.

[E-Mail-geschützt]:~$ Pkill -u jim

-ich wird zum Beenden des Prozesses ohne Berücksichtigung der Groß-/Kleinschreibung durch pkill verwendet.

[email protected]:~$ Pkill -i firefox

-9 wird zum Senden eines Kill-Signals verwendet.

[E-Mail-geschützt]:~$ Pkill -9 chrome

-15 wird zum Senden eines Terminierungssignals verwendet.

[email protected]:~$ Pkill -15 vlc
lsof (Liste der geöffneten Dateien)

Dieses Befehlszeilendienstprogramm wird zum Auflisten von Dateien verwendet, die von mehreren Prozessen geöffnet wurden. Und wie wir wissen, erkennen alle UNIX/Linux-Systeme alles als Datei, daher ist es bequem, den Befehl lsof zu verwenden, um alle geöffneten Dateien aufzulisten.

[email protected]:~$ lsof

In der obigen Tabelle des Befehls lsof steht FD für die Dateibeschreibung, cwd für das aktuelle Arbeitsverzeichnis, txt für Textdatei, mem für speicherabgebildete Dateien, mmap für speicherabgebildete Geräte, REG für eine normale Datei, DIR für Verzeichnis, rtd bedeutet Stammverzeichnis. Es gibt noch andere Optionen, die Sie mit dem lsof-Befehl verwenden können.

Optionen für den Befehl lsof.

-c wird verwendet, um offene Dateien nach ihrem Prozessnamen aufzulisten.

[email protected]:~$ lsof -c chrome

-u dient zum Auflisten geöffneter Dateien durch einen Benutzer.

[email protected]:~$ lsof -u jim

-ich wird für die Auflistung von Prozessen verwendet, die auf einem Port ausgeführt werden.

[email protected]:~$ lsof -i

+D dient zum Auflisten geöffneter Dateien unter einem Verzeichnis.

[E-Mail-geschützt]:~$ lsof +D /home/

-p dient zum Auflisten geöffneter Dateien durch einen Prozess.

[E-Mail-geschützt]:~$ lsof -p 1342

Auflisten und Verwalten des Prozesses mit dem Top-Befehl

Mit dem Top-Befehl können Sie eine Echtzeitansicht der laufenden Systemprozesse anzeigen. Es zeigt die Prozesse in Abhängigkeit von der CPU-Auslastung an. Sie können die Spalte nach Ihren Wünschen sortieren. Der oberste Befehl liefert auch einige Informationen über Ihr System, wie z. B. wie lange das System hochgefahren ist oder wie viele Benutzer an das System angeschlossen sind und wie viele Prozesse ausgeführt werden, wie viel CPU und RAM verwendet werden, und eine Auflistung von jedem verarbeiten.

Geben Sie den Befehl top ein, um die laufenden Prozesse aufzulisten.

[E-Mail-geschützt]:~$ top

Aufgaben:291 insgesamt, 1 läuft, 290 schlafend, 0 gestoppt, 0 Zombie

% CPU(s):2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0st

MiB-Speicher:7880,6 insgesamt, 1259,9 frei, 3176 verwendet, 3444,4 Buff/Cache

MiB Swap:2048,0 insgesamt, 2048,0 kostenlos, 0,0 verwendet. 4091.8 Avail-Speicher

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ BEFEHL

3241 Jim 20 0 20,7 g 33512 10082 S 1,7 4,2 0:54,24 Chrom

3327 Jim 20 0 4698084 249156 86456 S 1,3 3,1 1:42,64 Chrom

2920 Jim 20 0 955400 410868 14372 S 1,0 5,1 7:51,04 Chrom

3423 jim 20 0 4721584 198500 10106 S 1,0 2,5 0:49,00 chrom

3030 jim 20 0 458740 114044 66248 S 0,7 1,4 3:00,47 chrom

3937 jim 20 0 4610540 104908 72292 S 0,7 1,3 0:05,91 chrom

1603 jim 20 0 825608 67532 40416 S 0,3 0,8 3:13,52 Xorg

1756 jim 20 0 4154828 257056 10060 S 0,3 3,2 5:53,31 gnome-s+

1898 Jim 20 0 289096 29284 5668 S 0,3 0,4 1:06,28 fusuma

3027 Jim 20 0 587580 14304 75960 S 0,3 1,8 9:43,59 Chrom

3388 Jim 20 0 4674192 156208 85032 S 0,3 1,9 0:13,91 Chrom

3409 jim 20 0 4642180 140020 87304 S 0,3 1,7 0:15,36 chrom

3441 jim 20 0 16,5 g 156396 89700 S 0,3 1,9 0:25,70 chrom

….Schnipp….

Sie können auch einige Aktionen mit dem Befehl top ausführen, um Änderungen an laufenden Prozessen vorzunehmen. Hier ist die Liste unten.

  • du Durch Drücken von „u“ können Sie einen Prozess anzeigen, der von einem bestimmten Benutzer ausgeführt wird.
  • M Durch Drücken von „M“ können Sie nach RAM-Nutzung statt nach CPU-Nutzung ordnen.
  • P Durch Drücken von „P“ können Sie nach CPU-Auslastung sortieren.
  • 1 durch Drücken von „1“ wechseln Sie zwischen der CPU-Nutzung, wenn es mehr als eine gibt.
  • R Durch Drücken von „R“ können Sie Ihre Ausgabe umkehren.
  • h Durch Drücken von „h“ können Sie zur Hilfe gehen und eine beliebige Taste drücken, um zurückzukehren.

Beachten Sie, welcher Prozess mehr Speicher oder CPU verbraucht. Die Prozesse, die mehr Speicher verbrauchen, können beendet werden, und die Prozesse, die mehr CPU verbrauchen, können reniced werden, um sie für den Prozessor weniger wichtig zu machen.

Beenden Sie einen Prozess oben: Drücken Sie k und schreiben Sie die Prozess-ID, die Sie beenden möchten. Geben Sie dann 15 oder 9 ein, um normal oder sofort zu töten; Sie können einen Prozess auch mit einem kill- oder killall-Befehl beenden.

Erneuern Sie einen Prozess oben: Drücken Sie r und schreiben Sie die PID des Prozesses, den Sie renicen möchten. Sie werden aufgefordert, die PID des Prozesses einzugeben und dann den Wert, den Sie diesem Prozess geben möchten, zwischen -19 und 20 (-19 bedeutet die höchste Wichtigkeit und 20 bedeutet die niedrigste Wichtigkeit).

Auflisten und Verwalten von Prozessen mit System Monitor

Linux hat einen Systemmonitor Gnome, um die laufenden Prozesse dynamischer anzuzeigen. Um den Systemmonitor zu starten, drücken Sie die Windows-Taste und geben Sie den Systemmonitor ein, klicken Sie auf sein Symbol, und Sie können Prozesse in Spalten sehen. Indem Sie mit der rechten Maustaste darauf klicken, können Sie den Prozess abbrechen, stoppen oder erneut abbrechen.

Die laufenden Prozesse werden mit Benutzerkonten in alphabetischer Reihenfolge angezeigt. Sie können die Prozesse nach beliebigen Feldüberschriften wie CPU, Speicher usw. sortieren, klicken Sie einfach darauf, und sie werden sortiert; Klicken Sie beispielsweise auf CPU, um zu sehen, welcher Prozess die meiste CPU-Leistung verbraucht. Um Prozesse zu verwalten, klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option aus, die Sie mit dem Prozess machen möchten. Um den Vorgang zu verwalten, wählen Sie die folgenden Optionen aus.

  • Eigenschaften- andere Einstellungen zu einem Prozess anzeigen.
  • Speicherkarten- Systemspeicherzuordnungen anzeigen, um anzuzeigen, welche Bibliothek und andere Komponenten im Speicher für den Prozess verwendet werden.
  • Datei öffnen- zeigt an, welche Dateien von dem Prozess geöffnet werden.
  • Priorität ändern- Zeigen Sie eine Seitenleiste an, in der Sie den Vorgang mit den Optionen von sehr hoch bis sehr niedrig und benutzerdefiniert ändern können.
  • Stopp- hält den Vorgang an, bis Sie fortfahren.
  • Weiter- startet einen angehaltenen Prozess neu.
  • Kill- Force beendet einen Prozess sofort.

Einen Prozess mit kill und killall beenden

Der Befehl kill und killall wird zum Beenden/Beenden eines laufenden Prozesses verwendet. Diese Befehle können auch verwendet werden, um ein gültiges Signal an einen laufenden Prozess zu senden, z. B. um einem Prozess zu sagen, dass er fortfahren, beenden oder Konfigurationsdateien erneut lesen soll usw. Signale können auf beide Arten nach Zahlen oder nach Namen geschrieben werden. Im Folgenden finden Sie einige häufig verwendete Signale.

Beschreibung der Signalnummer

SIGHUP 1 Erkennt das Auflegesignal am steuernden Terminal.

SIGINT 2 Interpretiert von der Tastatur.

SIGQUIT 3 Beenden über die Tastatur.

SIEGEL 4 Illegale Anweisungen.

SIGTRAP 5 Wird zum Verfolgen eines Trapes verwendet.

SIGABRT 6 wird zum Abbrechen des Signals von abort(3) verwendet.

SIGKILL 9 Wird zum Senden eines Kill-Signals verwendet.

SIGTERM 15 Wird zum Senden eines Terminierungssignals verwendet.

SIGCONT 19,18,25 Wird verwendet, um einen Prozess fortzusetzen, wenn er gestoppt wurde.

SIGSTOP 17,19,23 Wird zum Stoppen von Prozessen verwendet.

In verschiedenen Unix/Linux-Betriebssystemen werden unterschiedliche Werte von SIGCONT und SIGSTOP verwendet. Für detaillierte Informationen über Signale geben Sie man 7 signal terminal ein.

Verwenden des Kill-Befehls zum Senden eines Signals zur Verarbeitung durch PID.

Notieren Sie sich den Prozess, an den Sie ein Kill-Signal senden möchten. Sie finden die Prozess-ID (PID) mit dem Befehl ps oder top.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ BEFEHL

7780 Jim 20 0 12596 4364 3460 R 33,3 3,2 13:54:12 oben

Der oberste Prozess verbraucht 33,3 % der CPU. Wenn Sie diesen Prozess beenden möchten, um CPU-Auslastung zu sparen, finden Sie hier einige Möglichkeiten, diesen Prozess mit dem Kill-Befehl zu beenden.

[email protected]:~$ kill 7780

[E-Mail-geschützt]:~$ kill -15 7780 oder $ kill -SIGTERM 7780

[E-Mail-geschützt]:~$ kill -9 7780 oder $ kill -SIGKILL 7780

Verwenden des Befehls killall zum Senden von Signalen an einen Prozess nach Namen.

Mit dem Befehl killall müssen Sie nicht nach der Prozess-ID suchen; Sie können ein Kill-Signal anhand des Namens anstelle der Prozess-ID an einen Prozess senden. Es kann auch mehr Prozesse beenden, als Sie möchten, wenn Sie nicht aufpassen, z. B. beendet „killall chrome“ alle Chromprozesse, einschließlich derjenigen, die Sie nicht beenden möchten. Manchmal ist es sinnvoll, gleichnamige Prozesse zu beenden.

Wie beim Kill-Befehl können Sie die Signale beim Killall-Befehl nach Name oder Nummer eingeben. Beenden Sie jeden laufenden Prozess mit dem Befehl killall; Sie müssen nur seinen Namen und das Signal, das Sie senden möchten, eingeben. Senden Sie z. B. ein Kill-Signal an den Prozess Firefox mit dem Befehl killall, schreiben Sie den folgenden Befehl.

[email protected]:~$ killall -9 firefox

oder

[email protected]:~$ killall SIGKILL chrome

Änderung der Prozesspriorität mit nice und renice

Jeder Prozess auf Ihrem Linux-System hat einen hervorragenden Wert und liegt zwischen -19 und 20. Es entschied, welcher Prozess mehr CPU-Zugriff im System erhalten würde. Je niedriger der Wert von nice ist, desto mehr Zugriff hat ein Prozess auf den CPU-Prozess. Wie -16 Nice-Werte haben mehr Zugriff auf die CPU als 18 Nice-Werte. Nur ein Benutzer mit Root-Rechten kann einen negativen Wert von nice zuweisen. Ein normaler Benutzer kann nur den Wert „nett“ zwischen 0 und 19 zuweisen. Ein normaler Benutzer kann nur höhere nette Werte und eigene Prozesse zuweisen. Ein Root-Benutzer kann jedem Prozess jeden netten Wert zuweisen.

Wenn Sie einen Prozess zugänglicher für die CPU-Auslastung machen möchten, indem Sie den Nice-Wert zuweisen, geben Sie den folgenden Befehl ein.

[email protected]:~$ schön +3 Chrom

Und wiederholen Sie den Vorgang

[E-Mail-geschützt]:~$ renice -n -6 3612

Schlussfolgerung

Hier ist die Anleitung zur Verwaltung Ihres Linux-Systems mit ps, top, lsof, pstree, pkilll, kill, killall, nice, renice usw. Einige Prozesse verbrauchen den größten Teil der CPU-Auslastung und des Arbeitsspeichers; zu wissen, wie man sie verwaltet, erhöht die Geschwindigkeit und Leistung Ihres Systems und gibt Ihnen eine bessere Umgebung, um alle gewünschten Prozesse effizienter auszuführen.


Ubuntu
  1. Verwalten von Prozessen unter Linux mit kill und killall

  2. Installieren Sie Dropbox auf Ubuntu 14.10

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

  4. Linux – Init-Prozess:Urahn aller Prozesse?

  5. MX-Linux vs. Ubuntu

Prozessüberwachung unter Linux

Laufende Prozesse

Installieren Sie AngularJS unter Ubuntu 22.04 | 20.04 Linux

Prozesse unter Linux verstehen

Befehle für das Prozessmanagement in Linux

So töten Sie Zombie-Prozesse in Ubuntu