1. 程式人生 > 其它 >Linux下如何通過一行命令查詢並殺掉程序

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 程序,但存在一些問題,比如介面上會出現一個錯誤資訊:

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

因此,我們需要過濾掉包含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
作者:wintest 出處:https://www.cnblogs.com/wintest 本文版權歸作者和部落格園共有,歡迎轉載,但必須在文章頁面明顯位置給出原文連結,並保留此段宣告,否則保留追究法律責任的權利。