Linux下批量殺掉篩選進程

在作項目的時候,因爲狀況要求,須要把服務器上符合某一條件的進程所有kill掉,可是又不能使用killAll直接殺掉某一進程名稱包含的全部運行中的進程(即咱們可能只須要殺掉某一類含有特定參數命令的進程)。
具體命令參考:
ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9
其中:
|管道符,用來隔開兩個命令,管道符左邊命令的輸出會做爲管道符右邊命令的輸入。
ps命令用來列出系統中當前運行的進程, ps -ef顯示全部進程信息,聯通命令行。
grep命令用於過濾/搜索特定字符,grep test在這裏爲搜索過濾全部含有‘test’名稱的進程
grep -v grep-v 顯示不包含匹配文本的全部行,在這裏爲篩選出全部不包含grep名稱的進程,對上一步的進程再作一次篩選(由於ps -ef列出了全部的命令,包括命令行)
awk在文件或字符串中基於指定規則瀏覽和抽取信息;把文件逐行讀入,以空格爲默認分隔符將每行切片,而後再進行後序處理。這裏利用awk '{print $2}'將上一步中過濾獲得的進程進行打印,$2表示打印第二個域(PID,進程號) $0表示全部域,$1表示第一個域,$n表示第n個域。
xargs命令是給命令傳遞參數的過濾器,善於把標準數據數據轉換成命令行參數。在這裏則是將獲取前一個命令的標準輸出而後轉換成命令行參數傳遞給後面的kill命令。
kill -9強制關閉進程。
此外,也有使用cut命令進行處理的,參考以下:
ps -ef | grep test | grep -v grep | cut -c 9-15 | xargs kill -9
cut -c 9-15僅顯示第9-15個字符(即PID,進程號)
---------------------
做者:weiyichenlun
來源:CSDN
原文:https://blog.csdn.net/weiyichenlun/article/details/59108463
版權聲明:本文爲博主原創文章,轉載請附上博文連接!服務器

相關文章
相關標籤/搜索