Linux下如何通過一行命令查詢並殺掉程序
阿新 • • 發佈:2021-07-05
在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 |