Wie kann man eine Reihe von Prozessen unter Unix schnell stoppen?
8
So stoppen Sie eine Reihe von Prozessen unter Unix schnell.
Ich kann ps/ top, kill.
Wenn die Anzahl der Prozesse sehr groß ist, verwende ich ein Shell-Skript. Gibt es andere Möglichkeiten, nur ein oder zwei Unix-Befehle können es gut machen?
Großartig! Um nur ein Beispiel zu nennen: Wenn Sie alle Curl-Prozesse beenden möchten, führen Sie zunächst pgrep -a curlalle Prozesse aus, die von beendet werden pkill. Wenn alles gut aussieht, verwenden Sie pkill curl.
Arun
3
Hier ist ein kleines Online-Bash-Skript, das ich verwende:
Ich beende alle Prozesse, deren Name den ersten Parameter enthält (ohne Berücksichtigung der Groß- und Kleinschreibung). Die Aufteilung jedes Teils ist:
ps auxwww druckt alle Prozesse mit einem sehr breiten "Befehls" -Feld
grep -v grep ist da, um sich vom Töten auszuschließen
grep -i $1 stimmt mit allen Zeilen überein, die den ersten Parameter enthalten
awk '{print $2}' greift auf alle Prozess-IDs zu
xargs kill -9 Bricht alle ausgewählten Prozesse ab
+1 Ich liebe eine gute Pipeline, besonders eine, die verwendet xargs.
Ich bevorzuge zu verwenden fgrep(keine Regex)
Prinz John Wesley
8
Dieses Skript ist im Vergleich zu übermäßig komplex pkill -9 -f $1. Empfehlen Sie auch nicht, Signal 9 (KILL) zu verwenden. Dies ist ein letzter Ausweg, um einen Prozess zu stoppen, und nicht einer, der routinemäßig angewendet werden sollte.
USAGE:./autokill.kl.sh <proc-name>=>This will give you 5 seconds to change your mind and control-C out of the program.
USAGE:./autokill.kl.sh <proc-name> now =>This will immediately kill all processes matching the string/pattern you specified!!!
MODEL:./autokill.kl.sh httpd
MODEL:./autokill.kl.sh httpd now
MODEL:./autokill.kl.sh httpd view =>This will only show you the list of processes matching the pattern you specified.
Das Skript kann hier direkt heruntergeladen werden .
Antworten:
Meine Wahl ist
pkill/pgrep
quelle
pgrep -a curl
alle Prozesse aus, die von beendet werdenpkill
. Wenn alles gut aussieht, verwenden Siepkill curl
.Hier ist ein kleines Online-Bash-Skript, das ich verwende:
Ich beende alle Prozesse, deren Name den ersten Parameter enthält (ohne Berücksichtigung der Groß- und Kleinschreibung). Die Aufteilung jedes Teils ist:
ps auxwww
druckt alle Prozesse mit einem sehr breiten "Befehls" -Feldgrep -v grep
ist da, um sich vom Töten auszuschließengrep -i $1
stimmt mit allen Zeilen überein, die den ersten Parameter enthaltenawk '{print $2}'
greift auf alle Prozess-IDs zuxargs kill -9
Bricht alle ausgewählten Prozesse abquelle
xargs
.fgrep
(keine Regex)pkill -9 -f $1
. Empfehlen Sie auch nicht, Signal 9 (KILL) zu verwenden. Dies ist ein letzter Ausweg, um einen Prozess zu stoppen, und nicht einer, der routinemäßig angewendet werden sollte.Psdoom ist wirklich der einzige Weg, einen Prozess zu beenden. http://psdoom.sourceforge.net/
quelle
Sehr schnelle Möglichkeit, mehrere Prozesse abzubrechen (ohne ein Skript schreiben zu müssen)
Das Skript kann hier direkt heruntergeladen werden .
quelle
Ich bevorzuge es wirklich, den Befehl pgrep / pkill zu verwenden. Hier ist ein Beispiel:
Natürlich können Sie einen for-Zyklus verwenden:
Ich hoffe das war hilfreich, fröhliches Töten.
quelle