Process
我想殺死由以下命令產生的所有程序
以下命令將顯示所有執行的 PID
vmstat1
:ps -ef | grep "vmstat 1" | awk '{ print $2 }'
我的問題是,如果一次有 20 個左右,我該如何殺死它們?
如果您的命令生成 PID 列表,則只需將其通過管道傳輸到:
xargs kill
請注意,您的命令也將匹配 grep 命令,因此請考慮
|grep -v grep
在原始grep
命令之前添加類似的內容。
只需使用
pkill
. 雖然不是標準命令,但它在許多 Unices 中都可以找到,並且專門用於此類任務。pkill -f 'vmstat 1'
另請注意,您
grep
將匹配vmstat 1
但也匹配vmstat 10
andgrep vmstat 1
(上面也是如此pkill
),並且awk
是grep
. 為了更健壯,您可以改為:ps -Ao pid,args | awk '$2 == "vmstat" && $3 == "1" {print $1}' | xargs kill
或者
pkill -xf 'vmstat 1'