Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So beenden Sie einen Prozess unter Linux

So beenden Sie einen Prozess unter Linux

WBOY
WBOYnach vorne
2023-05-21 19:28:101350Durchsuche

Herkömmlicher Artikel: , Verwenden Sie zunächst PS, um den Prozess anzuzeigen. Die Methode lautet wie folgt:


Codecode wie folgt kopieren:

$ ps -ef

$ ps -ef

...

SMX 1822 1 0 11:38? 00 :00:49 gnome-terminal
smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper
smx 1824 1822 0 11:38 pts/0 00:00:02 b ash
smx 1827 1 4 11: 38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin
smx 1857 1822 0 11:38 pts/1 00:00:00 bash
smx 1880 1619 0 11:38 ? 00:00 ;

smx 1822 0,1 0,8 58484 18152 ? sl 11:38 0:49 gnome-pty-helper
smx 1824 0,0 0,1 6820 3776 pts/0 ss 11:38 0:02 bash
smx 1827 4,3 5,8 398196 119568 ? sl 11:38 26:13 /usr/lib/firefox-3.6.18/firefox-bin

sm x 1857 0,0 0,1 6688 3644 Punkte/1 ss 11:38 0:00 bash

smx 1880 0,0 0,6 41536 12620 ? s 11:38 0:00 update-notifier

smx 11953 0,0 0,0 2716 10 64 punkte /0 r+ 21:42 0: 00 ps -aux

zu diesem Zeitpunkt Wenn ich den Firefox-Prozess beenden möchte, geben Sie einfach das Terminal ein:

Code kopieren Der Code lautet wie folgt:


$ kill -s 9 1827


wobei -s 9 gibt an, dass das an den Prozess übergebene Signal 9 ist, also erzwungen wird, den Prozess so schnell wie möglich zu beenden. Informationen zu den einzelnen Abschlusssignalen und ihren Funktionen finden Sie im Anhang.

1827 ist die PID von Firefox, die ps oben gefunden hat.

Es ist einfach, aber es gibt ein Problem. Wenn es zu viele Prozesse gibt, ist es jedes Mal schmerzhaft Den zu tötenden Prozess in einer großen Liste von Prozessinformationen zu finden, ist schwindelerregend.

Erweitert:

Verbesserung 1:

Führen Sie die PS-Abfrageergebnisse durch die Pipeline zu grep, um Prozesse zu finden, die bestimmte Zeichenfolgen enthalten. Das Pipe-Zeichen „|“ wird verwendet, um zwei Befehle zu trennen. Die Ausgabe des Befehls auf der linken Seite des Pipe-Zeichens wird als Eingabe des Befehls auf der rechten Seite des Pipe-Zeichens verwendet.


Code kopieren Der Code lautet wie folgt:

$ ps -ef | 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox

Diesmal ist es erfrischend. Dann

Kopieren Sie den Code. Der Code lautet wie folgt:

$kill -s 9 1827


Verbesserung 2 – Verwenden Sie pgrep:

Woran denken Sie zuerst, wenn Sie pgrep sehen? Genau, grep! Das p von pgrep gibt an, dass dieser Befehl grep speziell für Prozessabfragen ist.


Code kopieren Der Code lautet wie folgt:

$ pgrep firefox

1827


Was sehen Sie? Genau, die PID von Firefox, Sie müssen sie noch einmal eingeben:

$kill -s 9 1827

Verbesserung 3 – Verwenden Sie PIDOF:

Woran denken Sie, wenn Sie PIDOF sehen? Genau, die PID von xx ist wörtlich übersetzt die PID von xx.


Code kopieren Der Code lautet wie folgt:

$ pidof firefox-bin

1827

Der kleine Nachteil gegenüber pgrep besteht darin, dass pidof den vollständigen Namen des Prozesses angeben muss. Dann gibt es noch das Klischee:

Kopieren Sie den Code. Der Code lautet wie folgt:

$kill -s 9 1827


Ob Sie ps verwenden und dann langsam die Prozess-PID finden oder grep verwenden, um den Prozess zu finden, der den enthält entsprechende Zeichenfolge, oder verwenden Sie pgrep, um direkt den Prozess zu finden, der es enthält. Es ist etwas mühsam, die Prozess-PID der entsprechenden Zeichenfolge einzugeben und sie dann manuell einzugeben, damit Kill zum Töten führt. Gibt es einen bequemeren Weg? haben!

Verbesserung 4:


Code kopieren Der Code lautet wie folgt:

$ps -ef |. grep -v grep |. xargs kill -s 9


Die Ausgabe von „grep firefox“ sind alle Prozesse, die das Schlüsselwort „firefox“ enthalten.

„grep -v grep“ dient dazu, den Prozess, der das Schlüsselwort „grep“ enthält, aus den aufgelisteten Prozessen zu entfernen.

„cut -c 9-15“ fängt das 9. bis 15. Zeichen der Eingabezeile ab, bei dem es sich zufällig um die Prozessnummer-PID handelt.

Der Befehl xargs in „xargs kill -s 9“ wird verwendet, um das Ausgabeergebnis (PID) des vorherigen Befehls als Parameter des Befehls „kill -s 9“ zu verwenden und den Befehl auszuführen. „kill -s 9“ beendet den angegebenen Prozess gewaltsam.

Wollen Sie sich nicht über etwas beschweren? Genau, es ist zu lang

Verbesserung 5:

Wenn Sie die beiden Befehle pgrep und pidof kennen, warum müssen Sie dann eine so lange Zeichenfolge eingeben?

Code kopieren Der Code lautet wie folgt:

$ pgrep firefox |. 🎜🎜#

Code kopieren Der Code lautet wie folgt :


$ ps -ef |. awk '{print $2}' |. Es gibt einen ziemlich deprimierenden Punkt: Der Prozess wurde korrekt gefunden und beendet, aber nach der Ausführung wird angezeigt, dass der Prozess nicht gefunden werden kann.

Die Funktion von awk '{print $2}' besteht darin, den Inhalt der zweiten Spalte auszudrucken. Gemäß dem allgemeinen Artikel können Sie wissen, dass die von ps ausgegebene zweite Spalte genau PID ist. Übergeben Sie die entsprechende PID des zu tötenden Prozesses als Parameter über xargs und beenden Sie den entsprechenden Prozess.

Verbesserung 7:

Müssen wir jedes Mal xargs aufrufen, um die PID zum Töten zu übergeben? Die Antwort ist nein:

Code kopieren Der Code lautet wie folgt:

$kill -s 9 `ps -aux | $2}'

Verbesserung 8:

Ja, der Befehl ist immer noch etwas lang, ersetzen Sie ihn durch pgrep.

Code kopieren Der Code lautet wie folgt:

$kill -s 9 `pgrep firefox`

Verbesserung 9—— pkill:

Woran hast du gedacht, als du pkill gesehen hast? Das ist richtig, pgrep and kill! pkill=pgrep+kill.

Code kopieren Der Code lautet wie folgt:

$pkill -9 firefox

Anleitung: "-9 " wird gesendet. Das Signal ist 9. Der Unterschied zwischen pkill und kill besteht darin, dass pkill kein „s“ benötigt und der Abschlusssignalpegel direkt auf „-“ folgt. Ich dachte immer, es wäre „-s 9“, aber der Prozess konnte nicht jedes Mal beendet werden, wenn ich ihn ausführte.

Verbesserung 10 – killall:

killall ähnelt pkill, aber wenn der angegebene Prozessname unvollständig ist, meldet killall einen Fehler. pkill oder pgrep können einen Prozess beenden, indem sie einfach einen Teil des Prozessnamens angeben.


Code kopieren Der Code lautet wie folgt:

$killall -9 firefox

Das obige ist der detaillierte Inhalt vonSo beenden Sie einen Prozess unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen