如何通过管道给出参数kill

时间:2011-12-28 09:14:44

标签: linux bash shell command-line command-line-arguments

我需要搜索某个进程并终止该进程。我写了一个这样的命令:

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

流程名称为dmn。但它没有用。如何按名称和kill查找流程。

9 个答案:

答案 0 :(得分:116)

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

答案 1 :(得分:35)

如果您要删除多个进程,可以使用:

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

注意:您需要从输出中删除grep进程本身,这就是使用grep -v grep的原因。

答案 2 :(得分:14)

您可以使用

pkill dmn 

如果您的系统有pkill command

答案 3 :(得分:4)

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

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

答案 4 :(得分:3)

如果你的系统上有import java.util.Scanner; public class Yes { public static void main(String[] args) { Scanner in = new Scanner(System.in); String name = in.nextLine(); .... } } 命令(我知道ZSH之类的shell默认会出现这种情况,除非我弄错了),你可以这样做。

pidof

答案 5 :(得分:1)

您还可以使用killall

killall dmn

答案 6 :(得分:0)

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

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

"有些搜索"这里是您要搜索的任何进程名称,例如" java"所以说java进程的数量是200+,所以逐个查杀将是太典型了。

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

感谢。

答案 7 :(得分:0)

您可能不需要pipe,如果您有pidof命令并且知道图像名称,则可以这样操作:

kill $(pidof synergyc)

$()我理解这一点,因为它将输出转换为kill可以使用的变量,本质上就像管道一样。比其他一些选项更短,更容易理解,但可能也不太灵活,更直接。

答案 8 :(得分:-1)

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