[Linux]使用awk批量殺進程的命令


碰到需要殺掉某一類進程的時候,如何批量殺掉這些進程,使用awk命令是很好的選擇。

 

ps -ef|grep aaa|grep -v grep|awk  '{print "kill -9 " $2}' |sh

 

 

1. ps -ef|grep aaa|grep -v grep   

這是大家很熟悉的命令,這里就不再多說,就是從當前系統運行的進程的進程名中包含aaa關鍵字的進程。

2. 后面部分就是awk命令了,一般awk命令的格式為:awk ' pattern {action} '

    print是打印,kill -9 是強制停止進程的命令, $2就是前面有ps -ef命令得出的結果的第二列上顯示的內容。

下面舉一個簡單的例子:

#ps -ef|grep boco|grep -v grep
    root  9884  9883  0 17:10:01 ?         0:00 sendmail -oem -oi -froot boco
    root  9883  9880  0 17:10:01 ?         0:00 /usr/bin/mail boco
    boco 11112     1  0  Dec 24  ?         0:00 ./boco_appmaster -d /home/boco/agent
    boco 11126 11125 61  Dec 24  ?        52:59 ./boco_hostagent -i socket -l
    boco 11125 11112 37  Dec 24  ?        43:25 ./boco_appmaster -d /home/boco/agent
    boco  9811 11113  0 17:09:31 ?         0:00 sleep 60
    boco 11113     1  0  Dec 24  ?         0:23 /bin/sh ./boco_monitor.sh
#ps -ef|grep boco|grep -v grep|awk '{print "kill -9 "$2}'
kill -9 9884
kill -9 9883
kill -9 11112
kill -9 11126
kill -9 11125
kill -9 9811
kill -9 11113

 

我們可以看出,ps -ef|grep boco|grep -v grep列出了當前主機中運行的進程中包含boco關鍵字的進程

而ps -ef|grep boco|grep -v grep|awk '{print "kill -9 "$2}'則列出了要kill掉這些進程的命令,並將之打印在了屏幕上

在ps -ef|grep boco|grep -v grep|awk '{print "kill -9 "$2}'后面加上|sh后,則執行這些命令,進而殺掉了這些進程。

示例:ps -aux|grep "service_2.php"|awk '{print "kill -9 "$2}'|sh


免責聲明!

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



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