Linux下如何通過一行命令查找並殺掉進程


在Linux下,通常我們要殺掉某些進程,一般是先用 ps 命令查找出對應的進程號,然后再用 kill 命令把進程殺掉。

  • 查找指定進程:java
ps -ef | grep java
  • 根據找到的進程號pid,強制殺掉進程(假設進程號為 15750)
kill -9 15750

如果我們要殺掉的進程個數不多的話,用上面的命令不需要耗費多少時間,但如果進程個數比較多的時候,比如這樣的:

查找進程

在這個時候,如果使用 kill -9 進程號 一個個的殺掉進程,可能會比較麻煩,且耗時長。於是,我們需要一個能夠快速殺掉進程的命令,如下(以殺掉所有 flask 進程為例):

ps -ef | grep flask | awk '{print $2}' | xargs kill -9

這行命令的確能夠快速殺掉所有的 flask 進程,但存在一些問題,比如界面上會出現一個錯誤信息:

殺掉所有flask進程

出現這個錯誤,是因為我們通過 ps -ef | grep flask 查找到的所有 flask 進程中,有一條是包含 grep 本身的進程行,這一條進程行是不能被殺掉的,否則就會報錯,比如下面這樣:

查找所有flask進程

因此,我們需要過濾掉包含 grep 的進程行,然后再殺掉剩下的進程即可,這個可以通過 grep -v grep 來完成。

那么,我們最終通過一行命令殺掉進程的命令如下:

ps -ef | grep flask | grep -v grep | awk '{print $2}' | xargs kill -9

命令分析:

命令 作用
ps -ef | grep flask 找到所有 flask 進程
grep -v grep 過濾包含 grep 的進程行
awk '{print $2}' 提取找到的進程行記錄中第二列的參數,也就是flask的進程號
xargs kill -9 把前面的參數都傳遞給后面的命令 kill -9


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM