Aus irgendeinem Grund habe ich ziemlich viele Google Chrome-Hilfsprozesse, die nicht mehr reagieren und CPU-Ressourcen beanspruchen. Normalerweise führe ich einfach aus killall Google\ Chrome\ Helper
, aber das beendet alle, einschließlich der reagierenden Prozesse, was bedeutet, dass ich Chrome neu starten muss.
Gibt es ein Flag, killall
sodass nur nicht reagierende Prozesse betroffen sind?
Antwort1
Eine Möglichkeit besteht darin, top
die PID des Prozesses zu ermitteln, der die meiste CPU verwendet. Ich habe in einem Terminal eine Bash-CPU-Schweineroutine gestartet:
bash -c "while true; do :; done"
Dann kann ich es in einem anderen Terminal wie folgt beenden:
kill $( top -l2 | grep bash | sort -nrk3 | awk '{print $1;exit}' )
Beachten Sie, da diesosx, dies ist die BSD- top
und nicht die GNU-Version.
-l2
weist top an, zwei Iterationen lang zu laufen – die erste muss ignoriert werden, da sie einfach 0 % CPU für alle Prozesse meldet.- Die
grep
Filter beschränken sich auf die Bash-Zeilen. Beachten Sie, dass dies möglicherweise mehr Arbeit erfordert, wenn Ihr Grep-Ausdruck mit anderen Teilen dertop
Ausgabe übereinstimmt. sort
sortiert die Ausgabe numerisch umgekehrt nach der 3. Spalte (CPU %)head
erhält die erste Zeile (höchste CPU)cut
erhält die erste Spalte (PID)- Das obige wird in einer
$()
Befehlssubstitution ausgeführt, und die numerische PID wird direkt ankill
Auf GNU/Linux-Rechnern lautet das Äquivalent:
kill $(top -bn1 | grep bash | sort -nrk9 | awk '{print $1;exit}')