"End Process" -Äquivalent unter Linux

3519
John T

Zur Zeit verwende ich den Systemmonitor von gnome. Es ist wie ein Task-Manager und hat eine Funktion, um den Prozess zu beenden, aber manchmal friert dies alles ein und blockiert. Gibt es eine Möglichkeit, einen Prozess mit der Befehlszeile schneller zu beenden?

6

8 Antworten auf die Frage

14
John T

Sie suchen nach dem Kill- Befehl

Um einen Prozess "vollständig" wie gewünscht zu beenden, können Sie kill wie folgt verwenden:

kill -9 PID 

Obwohl dies unerwünschte Auswirkungen haben und temporäre Dateien und dergleichen hinterlassen kann, sollten Sie zuerst das Beendigungssignal senden:

kill -TERM PID 

Wo PIDist die ID des Prozesses, den Sie töten möchten. Wenn Sie den Schalter -9 verwenden, wird der Prozess abgebrochen, egal was passiert. Seien Sie also vorsichtig. Mit dem psBefehl können Sie eine PID einer Anwendung ermitteln . Wenn der Prozess hängen bleibt, werden wahrscheinlich einige Ressourcen benötigt, sodass Sie ihn mit dem topBefehl auch ganz oben in der Liste sehen können . Der Systemmonitor sollte Ihnen sogar die PID mitteilen.

Sie könnten auch so etwas verwenden, um die PID zu bestimmen:

ps -ax | grep program_name 

Die Zahl ganz links sollte die PID sein.

Immer erwähnenswert, dass man zuerst "kill -TERM" versuchen sollte. Es gibt dem Prozess die Möglichkeit, sich selbst zu säubern, während "kill-KILL" das Betriebssystem veranlasst, den Prozess unverzüglich zu beenden. Temporäre Dateien können übrig bleiben und es kann zu geringfügigen Belästigungen kommen. dmckee vor 15 Jahren 5
Ich nehme an, er meinte es prompt, aber das stimmt. John T vor 15 Jahren 0
Der End-Prozess des GNOME-Systemmonitors läuft tatsächlich "kill". quark vor 15 Jahren 0
-TERM ist die Standardeinstellung. Sie können einfach kill PID eingeben bdonlan vor 15 Jahren 2
In Linux gibt es auch den Befehl killall, mit dem Sie das Programm anhand des Programmnamens anstelle der PID angeben können. nos vor 15 Jahren 0
11
vava

Probieren Sie xkill aus, es gibt ein Applet, das Sie in Ihr Panel einfügen könnten. Klicken Sie einfach darauf und dann auf das Anwendungsfenster, das Sie töten möchten, und es ist sofort verschwunden. Sehr praktisch

+1, `kill -9` kann manchmal ein Chaos hinterlassen und ist sehr selten notwendig. `xkill` und` killall`sind viel handlicher für den täglichen Gebrauch und geben Prozessen die Möglichkeit, das Signal zu fangen und aufzuräumen. jtb vor 15 Jahren 2
Das ist großartig, vielen Dank. vor 15 Jahren 0
7
jtimberman

Mit kill können Sie das gewünschte Signal an die Prozess-ID senden. Sie können die Prozess-ID mit pgrep finden und ein Signal mit pkill an einen benannten Prozess senden . Das Muster, mit dem nach dem Prozess mit pgrep und pkill gesucht wird, wird normalerweise nur mit dem Prozessnamen abgeglichen. Geben Sie -f an, um die gesamte Befehlszeile des Prozesses zu überprüfen. Beginnen Sie mit einem TERM-Signal (es ist die Standardeinstellung, wenn kein Signal angegeben ist), bevor Sie KILL ('9') verwenden, da das direkte Abschalten eines Prozesses unerwünschte Nebenwirkungen haben kann.

Zum Beispiel verwende ich den Dhclient3-Prozess auf meinem System.

Alte Weise, ps | grep:

$ ps awux | grep dhclient3 root 2539 0.0 0.1 2200 220 ? S<s Jul28 0:00 dhclient3 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0 1000 12734 0.0 0.5 3184 732 pts/3 R+ 21:58 0:00 grep dhclient3 

Töte den Dhclient:

$ kill -9 2539 

Mit pgrep / pkill:

$ pgrep dhclient 2539 

Mit -f können Sie ein Muster irgendwo in der Befehlszeile angeben:

$ pgrep -f leases 2539 

Töte den Dhclient-Prozess mit pkill (Signal vor -f-Pattern):

$ pkill -f dhclient3 $ pkill -9 -f dhclient3 

Über Signale (von der Kill-Man-Seite):

Das Standardsignal für kill ist TERM. Verwenden Sie -l oder -L, um die verfügbaren Signale aufzulisten. Zu den besonders nützlichen Signalen zählen HUP, INT, KILL, STOP, CONT und 0. Alternative Signale können auf drei Arten angegeben werden: -9 - SIGKILL-KILL. Negative PID-Werte können verwendet werden, um ganze Prozessgruppen auszuwählen. Siehe die PGID-Spalte in der ps-Befehlsausgabe. Eine PID von -1 ist speziell; es zeigt alle Prozesse an, mit Ausnahme des Kill-Prozesses und von Init.

Machen Sie es sich nicht zur Gewohnheit, kill -9 zu verwenden. Bitten Sie den Prozess besser, das System ordnungsgemäß zu beenden (das Standard -TERM-Signal). nos vor 15 Jahren 0
ach, pkill ist genau das, wonach ich als stärkere Killall gesucht habe, und die Suche nach Killall brachte mich auf diese Frage. Superuser rockt. Dickon Reed vor 14 Jahren 1
1
OscarRyz

Normalerweise mache ich:

ps -feax | grep "TaskNameHere" 

Welche gibt die PID der Aufgabe zurück

Dann

kill -9 the_process_id 
-1 für die Verwendung von "kill -TERM the_process_id" nicht Andrew Scagnelli vor 15 Jahren 0
@EIN. Scagnelli: :) OscarRyz vor 15 Jahren 0
1
codeLes

Ich benutze gern Killall, da Sie damit die Namen des laufenden Prozesses durchblättern können. Wenn Sie zsh verwenden, erhalten Sie eine schöne Liste der laufenden Prozesse. Beginnen Sie mit dem ersten Buchstaben des Prozesses, den Sie beenden möchten, und drücken Sie die Tabulatortaste.

killall fi 

Wenn Sie dort auf "Tab" klicken, wird angezeigt, dass "Firefox" verfügbar ist. Wiederholen Sie den Befehl und wenn etwas sagt, dass kein Prozess beendet wurde, haben Sie Ihre Aufgabe erfüllt.

0
Gnoupi

Wenn der gehängte Prozess ein Fenster ist, müssen Sie in der Gnome-Symbolleiste eine Schaltfläche hinzufügen, um einen Prozess zu beenden (klicken Sie darauf und dann auf das betreffende Fenster).

edit: " Force Quit " ist der Name

0
William Pursell

Sie wollen Psdoom . Dies ist ein Ego-Shooter-Spiel, in dem die Monster mit einer PID verbunden sind. Das Töten eines Monsters sendet eine SIGKILL an den zugehörigen Prozess. Es ist vielleicht nicht der effizienteste Weg, um einen Prozess zu beenden, aber es ist der unterhaltsamste.

0
Bryce

Ich möchte auch xkill hinzufügen. Wenn Sie dies über ein Terminal (oder eine Eingabeaufforderung zum Ausführen) aufrufen, ändert sich der Cursor in ein Totenkopf- oder gekreuztes Symbol oder ein "X" -Symbol. Und wenn Sie das nächste Mal auf ein Fenster (ein beliebiges Fenster) klicken, wird diese Anwendung beendet.

Ich fand diesen Befehl etwas intuitiver und benutzerfreundlicher.