如何给参数通过pipe道杀死

我需要search一个特定的过程,并杀死这个过程。 我写了这样一个命令:

ps -e | grep dmn | awk '{print $1}' | kill 

进程名称是dmn 。 但它不工作。 我怎么才能find名字的过程,并kill他们。

 kill $(ps -e | grep dmn | awk '{print $1}') 

万一有多个进程,你想删除你可以使用这个:

 ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill 

注意:您需要从输出中删除grep进程本身,这就是为什么要使用grep -v grep

你可以使用

 pkill dmn 

如果你的系统有pkill命令的话 。

只需添加其他人,但我喜欢使用awk的正则表达式功能:

 kill $(ps | awk '/dmn/{print $1}') 

你也可以使用killall :

 killall dmn 

与-f选项一起使用pgrepkill $(pgrep -f dmn)

如果你的系统上有pidof命令(我知道默认情况下这样的shell如ZSH,除非我错了),你可以做类似的事情。

 kill -9 $(pidof dmn) 
 for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done 

你好朋友..我们可以使用for循环。

“一些搜索”在这里是你想要搜索的任何进程名称,例如“java”,所以让我们说java进程的计数是200+,所以一个接一个的执行就太典型了。

所以你可以使用上面的命令。

谢谢。