1. 程式人生 > >linux shell 命令批量殺死程序

linux shell 命令批量殺死程序

shell 批量搜尋程序名並殺死這些程序

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

ps -ef |grep /logstash 搜尋logstash的程序
awk '{print $2}' 讀入有'\n'換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個域,$n表示第n個域。預設域分隔符是"空白鍵""[tab]鍵",所以$1表示登入使用者,$2表示程序ID
xargs kill -9 xargs 可以讀入 stdin 的資料,並且以空白字元或斷行字元作為分辨,將 stdin 的資料分隔成為 arguments 。 因為是以空白字元作為分隔,所以,如果有一些檔名或者是其他意義的名詞內含有空白字元的時候, xargs 可能就會誤判了,如果需要處理特殊字元,需要使用-0

或其他引數進行處理。

xargs及常見用法

https://blog.csdn.net/csyuanA/article/details/76408836
http://czmmiao.iteye.com/blog/1949225

shell 搜尋佔用埠的程序並殺死

kill -9 $(lsof -i tcp:8080 -t)

殺死 8080 的程序