我想杀死所有我通过的进程:

ps aux | grep my_pattern

怎么做?

这不起作用:

pkill my_pattern

当前回答

可以使用以下命令:

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

or

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

这对我有用。

其他回答

可以使用以下命令

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

找到了对不支持pkill的服务器执行此操作的最佳方法

kill -9 $(ps ax | grep My_pattern| fgrep -v grep | awk '{ print $1 }')

你不必循环。

听起来很糟糕?

 pkill `pidof myprocess`

例子:

# kill all java processes
pkill `pidof java`

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

pkill -f my_pattern

万一它不起作用,也尝试使用这个:

pkill -9 -f my_pattern

如果您在选择流程时需要更多的灵活性,请使用

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

您可以使用grep-e等。