如何杀死具有给定部分名称的所有进程?

我想杀死所有的进程:

ps aux | grep my_pattern 

怎么做?

这不起作用:

 pkill my_pattern 

使用pkill -f ,它匹配命令行任何部分的模式

 pkill -f my_pattern 

杀死所有匹配string“myProcessName”的进程:

一个class轮:

 ps -ef | grep myProcessName | grep -v grep | awk '{print $2}' | xargs kill -9 

资料来源: http : //www.commandlinefu.com/commands/view/1138/ps-ef-grep-process-grep-v-grep-awk-print-2-xargs-kill-9

如果您在selectstream程时需要更多的灵活性,

 for KILLPID in `ps ax | grep 'my_pattern' | awk ' { print $1;}'`; do kill -9 $KILLPID; done 

你可以使用grep -e等

您可以使用以下命令列出进程

 ps aux | grep -c myProcessName 

如果您需要检查该进程的计数,然后运行

 ps aux | grep -c myProcessName |grep -v grep 

之后你可以使用杀死进程

 kill -9 $(ps aux | grep -e myProcessName | awk '{ print $2 }') 

如果你判断pkill -f PATTERN有点太危险了,我写了一个bash脚本,提示你select那些与你要杀的PATTERN匹配的进程。

听起来不好?

  pkill `pidof myprocess` 

例:

 # kill all java processes pkill `pidof java` 

你也可以使用killall -r my_pattern-r进程名称模式解释为扩展正则expression式。

 killall -r my_pattern 

您可以使用以下命令

 kill -9 $(ps aux | grep 'process' | grep -v 'grep' | awk '{print $2}') 

您可以使用以下命令来:

 ps -ef | grep -i myprocess | awk {'print $2'} | xargs kill -9 

要么

 ps -aux | grep -i myprocess | awk {'print $2'} | xargs kill -9 

这个对我有用。