由於某種原因,我最終得到了相當多的 Google Chrome Helper 進程,這些進程停止回應,佔用 CPU 資源。通常我只是運行killall Google\ Chrome\ Helper
,但這會殺死所有進程,包括回應進程,這意味著我必須重新啟動 Chrome。
是否有一個標誌,killall
因此它只影響無回應的進程?
答案1
一種方法是使用 來top
尋找使用最多 CPU 的進程的 pid。我在一個終端機中啟動了 bash CPU hog:
bash -c "while true; do :; done"
然後在另一個終端中我可以如下殺死它:
kill $( top -l2 | grep bash | sort -nrk3 | awk '{print $1;exit}' )
請注意,因為這是作業系統,這是BSD版本top
而不是GNU版本。
-l2
告訴 top 運行 2 次迭代 - 第一個迭代需要被忽略,因為它只報告所有進程的 0% CPU。- 只過濾
grep
bash 行。請注意,如果您的 grep 表達式與輸出的任何其他部分匹配,這可能需要更多工作top
。 sort
按第三列 (CPU %) 對輸出進行反向數字排序head
取得第一行(CPU 最高)cut
取得第一列(PID)- 上面是在
$()
指令替換中執行的,數字PID只是直接傳遞給kill
在 GNU/Linux 機器上等價的是:
kill $(top -bn1 | grep bash | sort -nrk9 | awk '{print $1;exit}')