858 Stimmen

Wie kann man alle Prozesse mit einem bestimmten Teilnamen beenden?

Ich möchte alle Prozesse, an denen ich vorbeikomme, beenden:

ps aux | grep my_pattern

Wie kann man das tun?

Das funktioniert nicht:

pkill my_pattern

8voto

kraymer Punkte 2964

Wenn Sie urteilen pkill -f PATTERN ein bisschen zu gefährlich, ich schrieb ezkill ein Bash-Skript, das Sie auffordert, die Prozesse auszuwählen, die mit dem PATTERN übereinstimmen, das Sie beenden möchten.

Warnung: Dieses Projekt wird nicht mehr gepflegt.

8voto

Alex Liu Punkte 95

Sie können den folgenden Befehl verwenden, um

kill -9 $(ps aux | grep 'process' | grep -v 'grep' | awk '{print $2}')

7voto

ajaz Punkte 91

Wenn Sie sich nicht die Mühe machen wollen, die Prozess-ID zu suchen, verwenden Sie regexp, um den Prozess nach seinem Namen zu beenden. Um z.B. Chrome zu beenden, reicht folgender Code aus.

killall -r chrome

6voto

Magige Daniel Punkte 896

Ich habe den besten Weg für einen Server gefunden, der die folgenden Funktionen nicht unterstützt pkill

kill -9 $(ps ax | grep My_pattern| fgrep -v grep | awk '{ print $1 }')

Sie brauchen keine Schleife zu machen.

5voto

MadMad666 Punkte 915

Dies ist der richtige Weg:

kill -9 $(pgrep -d' ' -f chrome)

Der pgrep sucht nach allen Prozessen, die mit chrome und gibt sie in einer durch Leerzeichen getrennten Liste zurück.

Dieser wird an die kill Anwendung, die sicher kill alle damit verbundenen chrome Prozesse.

Dies ist immer noch gefährlich, seien Sie vorsichtig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X