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 %1sudo 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 %1Auflisten 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 uUSER 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 | wenigerWenn 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,commPID 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 uDie Option f wird verwendet, um die vollständige Liste anzuzeigen.
[email protected]:~$ ps fx-Option wird verwendet, um Informationen über den Prozess ohne Terminal anzuzeigen.
[E-Mail-geschützt]:~$ ps xDie Option wird verwendet, um erweiterte Informationen anzuzeigen.
[email protected]:~$ ps eeine Option wird verwendet, um alle Prozesse mit dem Terminal aufzulisten.
[email protected]:~$ ps aDie Option v wird verwendet, um das Format des virtuellen Speichers anzuzeigen.
[email protected]:~$ ps vFlags für den ps-Befehl.
-e Flag wird verwendet, um jeden Prozess auf dem System zu sehen.
[email protected]:~$ ps -eDas 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 -opstree
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 -lpkill
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 vlclsof (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 1342Auflisten 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]:~$ topAufgaben: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+ BEFEHL7780 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 firefoxoder
[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 ChromUnd wiederholen Sie den Vorgang
[E-Mail-geschützt]:~$ renice -n -6 3612Schlussfolgerung
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.