Connect with us

Wie man

So beenden Sie Prozesse vom Linux-Terminal aus

So beenden Sie Prozesse vom Linux-Terminal aus

Fatmawati Achmad Zaenuri / Shutterstock.com

Das Beenden eines Prozesses ist manchmal der einzige Weg, ihn loszuwerden. Trotz des harten Namens bedeutet „töten“ eines Prozesses nur „zwingen, ihn zu beenden“. Hier erfahren Sie, wie Sie dies über die Linux- oder macOS-Befehlszeile tun.

Was ist ein Prozess?

Das Ausführen von Programmen wie Ihrem Webbrowser, Hintergrundprozessen, die mit Ihrer Desktop-Umgebung verknüpft sind, und Linux-Systemdiensten sind alles Prozesse.

Sie können Prozesse in zwei Gruppen einteilen:

  • Vordergrundprozesse sind solche, die von einem Benutzer gestartet oder gestartet wurden. Sie können sich in einem Terminalfenster befinden oder eine grafische Anwendung sein.
  • Hintergrundprozesse sind alle Prozesse, die automatisch gestartet werden und keine Interaktion mit Benutzern haben. Sie erwarten weder Eingaben von Benutzern noch präsentieren sie ihnen Ergebnisse oder Ausgaben. Hintergrundprozesse sind Dinge wie Dienste und Dämonen.

Wenn die Vordergrundprozesse die Front des Theaterpersonals und der Schauspieler sind, sind die Hintergrundprozesse das Backstage-Team „hinter den Kulissen“.

Wenn sich Prozesse schlecht verhalten oder fehlerhaft funktionieren, können sie zu viel CPU-Zeit beanspruchen, Ihren RAM verbrauchen oder in eine enge Rechenschleife eintreten und nicht mehr reagieren. Grafische Anwendungen können sich weigern, auf Mausklicks zu reagieren. Terminalanwendungen kehren möglicherweise nie zur Eingabeaufforderung zurück.

Die humane Antwort

Einen Prozess zu „töten“ bedeutet nur, den Prozess zum Beenden zu zwingen. Dies kann erforderlich sein, wenn der Prozess sich weigert zu antworten.

Linux bietet die kill, pkill, und killall Befehle, mit denen Sie genau das tun können. Diese Befehle können mit jeder Art von Prozess, Grafik oder Befehlszeile, Vordergrund oder Hintergrund verwendet werden.

Der Kill-Befehl

Benutzen killmüssen Sie die Prozess-ID (PID) des Prozesses kennen, den Sie beenden möchten. Das ps Befehl kann verwendet werden, um die PID eines Prozesses zu finden.

Haben ps Durchsuchen Sie alle Prozesse mit dem -e Option (alle Prozesse). Den Ausgang durchleiten less ist ratsam, es wird ziemlich viel davon geben. Art ps, ein Leerzeichen, -e, ein Leerzeichen, | (ein Pipe-Zeichen), ein anderes Leerzeichen und geben Sie dann ein less. Drücken Sie die Eingabetaste, um den Befehl auszuführen.

ps -e | less

Befehl ps in einem Terminalfenster

Dadurch erhalten Sie eine Prozessliste, die dem folgenden Screenshot ähnelt. Sie können vorwärts suchen in less Verwendung der / Taste und Sie können mit der Taste rückwärts suchen ? Schlüssel.

Ausgabe von ps in einem kleineren Fenster

Um sich auf den Prozess einzulassen, an dem Sie interessiert sind, leiten Sie die Ausgabe von weiter ps durch grep und geben Sie den Namen oder einen Teil des Namens des Prozesses an.

ps -e | grep shutter

Der Befehl ps wird durch grep geleitet, um den Verschlussvorgang zu finden

Wenn Sie die PID des Prozesses gefunden haben, den Sie beenden möchten, übergeben Sie sie an kill Befehl als Parameter. So beenden Sie die shutter Prozess, der durch den vorherigen Befehl identifiziert wurde, verwenden Sie diesen Befehl:

kill 2099

Befehl kill in einem Terminalfenster

Das kill Befehl ist ein stiller Attentäter – er gibt Ihnen kein Feedback, wenn er erfolgreich war.

Der pkill-Befehl

Das pkill Mit dem Befehl können Sie einen oder mehrere Prozesse nach Namen beenden. Sie müssen den Prozess nicht anhand der PID identifizieren. Benutzen pkill Sie geben einen Suchbegriff an, der pkill wird verwendet, um die Liste der ausgeführten Prozesse zu überprüfen. Matching-Prozesse werden beendet. Sie müssen also sicher sein, dass der Suchbegriff richtig geschrieben ist.

Als Sicherheitsnetz können Sie das verwenden pgrep Befehl verwenden Sie die pkill Befehl. Das pgrep Befehl akzeptiert auch einen Suchbegriff. Es wird die PID jedes Prozesses aufgelistet, die dem Suchbegriff entspricht. Das ist sicher, weil pgrep gibt kein Kill-Signal an die Prozesse aus, und wenn Sie den Suchbegriff falsch eingeben, wird kein anderer Prozess versehentlich beendet. Sie können sicherstellen, dass der Suchbegriff richtig durchdacht ist, bevor Sie ihn weitergeben pkill. Beide pkill und pgrep Behandeln Sie den Suchbegriff genauso. Ihre Behandlung ist so ähnlich, dass sie Teilen Sie die gleiche Manpage.

Nehmen wir an, es gibt einen Prozess mit dem Namen „subq“. Wir werden das benutzen ps -u dave | grep Befehl, einen Blick hinter den Vorhang zu werfen. Sie können sehen, dass „subq“ nur diesem Prozess und diesem Prozess entspricht. Das war nur so, dass Sie den vollständigen Namen des Prozesses sehen können.

ps -u dave | grep subq

Befehl ps in einem Terminalfenster

Nehmen wir an, unser Benutzer hat das getan. Alles, was sie wissen, ist, dass der Prozessname den Teilstring „subq.“ enthält. Sie benutzen pgrep um zu überprüfen, ob es nur eine Übereinstimmung mit dem Suchbegriff gibt. Sie verwenden dann diesen Suchbegriff mit pkill.

pgrep subq
pkill subq

pgrep und pkill in einem Terminalfenster

Sie können verwenden pkill mehrere Prozesse gleichzeitig zu beenden. Hier läuft der Benutzer pgrep um zu überprüfen, wie viele Prozesse Chrome gestartet hat. Sie benutzen pkill um sie alle zu töten. Sie überprüfen dann mit pgrep dass sie alle entfernt wurden.

pgrep chrome
pkill chrome
pgrep chrome

pgrep und pkill in einem Terminalfenster

Wenn mehrere Prozesse mit demselben Namen ausgeführt werden, Sie jedoch nicht alle beenden möchten, können Sie verwenden pgrep mit dem -f (Befehlszeilen-) Option, um zu identifizieren, welcher Prozess welcher ist. Ein einfaches Beispiel wären zwei ping Prozesse. Du willst einen von ihnen töten, aber nicht den anderen. Sie können ihre Befehlszeilen verwenden, um zwischen ihnen zu unterscheiden. Beachten Sie die Verwendung von Anführungszeichen zum Umschließen des Befehlszeilenparameters.

pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"

pgrep pkill mit Ping-Kommandozeile

Der Killall-Befehl

Warnung: In den Betriebssystemen Solaris und OpenIndiana die killall Befehl wird. Wenn sind root oder wenn Sie ausgestellt haben sudo killall Sie werden Ihren Computer neu starten! Während der Recherche für diesen Artikel wurde dieses Verhalten mit der neuesten Version von OpenIndiana Hipster 2018.10 bestätigt.

Das killall Befehl arbeitet in ähnlicher Weise zum pkill Befehl, aber mit einem bestimmten Unterschied. Anstatt einen Suchbegriff an den Befehl zu übergeben, müssen Sie den genauen Prozessnamen angeben.

Sie können keine teilweise Übereinstimmung mit einem Prozessnamen angeben. Sie müssen den gesamten Prozessnamen wie folgt angeben:

killall shutt
killall shutter

Befehl killall in einem Terminalfenster

Das -y Mit der Option (jünger als) können Sie Prozesse beenden, die länger als einen bestimmten Zeitraum ausgeführt wurden. Der Zeitraum wird in Zahlen angegeben, gefolgt von einer dieser Einheiten:

  • s (Sekunden)
  • m (Minuten)
  • h (Stunden)
  • d (Tage)
  • w (Wochen)
  • M (Monate, Anmerkung, Großbuchstabe „M“)
  • y (Jahre)

Um einen aufgerufenen Prozess zu beenden ana das wurde gerade gestartet und lässt alle älteren Instanzen von ana Beim Ausführen können Sie die folgenden Parameter mit verwenden killall, wenn Sie innerhalb von zwei Minuten reagiert hätten:

killall -y 2m ana

Killall mit jünger als Option

Das -o Mit der Option (älter als) können Sie Prozesse beenden, die länger als einen bestimmten Zeitraum ausgeführt wurden. Dieser Befehl wird alle töten ssh Verbindungen, die länger als einen Tag laufen:

killall -o 1d sshd

Befehl killall in einem Terminalfenster

Sei nicht zu glücklich

Mit diesen Befehlen können Sie fehlerhafte Prozesse korrekt und sicher identifizieren und beenden.

Sei immer vorsichtig. Stellen Sie zunächst sicher, dass der Prozess, den Sie beenden möchten, wirklich der gewünschte ist. Zweitens: Überprüfen Sie dies noch einmal – seien Sie vorsichtig und stellen Sie sicher, dass der Zielprozess derjenige ist, den Sie beenden möchten. Fahren Sie mit dem Beenden des Vorgangs fort, sobald Sie zufrieden sind.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia