Process

我想殺死由以下命令產生的所有程序

  • January 15, 2019

以下命令將顯示所有執行的 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 10and grep vmstat 1(上面也是如此pkill),並且awkgrep. 為了更健壯,您可以改為:

ps -Ao pid,args | awk '$2 == "vmstat" && $3 == "1" {print $1}' | xargs kill

或者

pkill -xf 'vmstat 1'

引用自:https://unix.stackexchange.com/questions/57605