我需要搜索某个进程并终止该进程。我写了一个这样的命令:
ps -e | grep dmn | awk '{print $1}' | kill
流程名称为dmn
。但它没有用。如何按名称和kill
查找流程。
答案 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)
答案 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)