如何用一个kill命令杀死两个或多个进程?

如何用一个kill命令杀死两个或多个进程?

我正在使用以下命令通过 shell 脚本终止一个 java 进程:

pidof java|xargs Kill -9 $1

如果输出列表pidof包含多个元素怎么办?我如何用同一个命令杀死它们?

答案1

首先,检查一下pkill。您可以根据名称杀死任意数量的进程:

pkill java

您甚至可以使用带参数的完整命令作为搜索的一部分

pkill -f some_string_in_arguemnts

其次,您的构造xargs对于多个 PID 来说效果很好,只要它们以空格或换行符分隔的数字通过管道输入即可。

答案2

killall无论如何,该命令在大多数 Linux 上都可用。您可能必须在某些发行版上安装它。它允许您终止与命令行上提供的名称匹配的所有进程。

答案3

pgrep可以给你 PID 列表

例如:

pgrep java 

将为您提供与 java 相关的 PID 列表。所以你可以使用:

kill -9 `pgrep java`

答案4

我更喜欢

kill -9 `pidof java`

因为内联输出

> pgrep gulp
6316
6565
> pidof gulp
6565 6316

问题是pkill,在某些系统(如 Ubuntu)上默认没有安装它

相关内容