Linux如何按名称杀死进程

使用killall和pkill按名称终止进程

killall 和 kill 有什么区别?

有两个关键区别。

首先,killall接受进程名作为参数,而不是PID。
另一个区别是,正如名称所示,killall将杀死命名进程的所有实例。与此相反,常规的'kill'命令只结束您显式指定的进程。

与pkill不同,killall要求您指定进程的确切名称。

让我们看一些例子,看看它是如何工作的,只需一个命令就可以杀死同一个bash脚本的几个实例。

$killall example.sh

在这种情况下,用一个命令杀死所有这些进程肯定比用“kill”指定每个PID容易得多。但是,killall不区分并针对示例中脚本的所有实例。比如说,如果我们只想杀死其中的两个,那么我们仍然必须使用“kill”命令。

我们可以使用的另一个命令是'pkill'。这与“killall”不同,它不要求我们指定进程的确切名称。因此,使用前面的示例,我们可以使用如下命令杀死'example.sh'的所有三个进程:

$pkill examp

正如您可以想象的那样,您应该在使用'pkill'命令时非常小心,因为您可以很容易地杀死一个您不想杀死的进程。例如,如果我们运行另一个脚本'example2.sh',前面的命令也会终止它。有时这可能是一件好事,但请注意,模式匹配有时会扩展到比您意识到的更多的进程。您可以随时使用'pgrep'命令预览'pkill'将终止多少进程。

$pgrep example
17555
17557
17559

因此,“pkill example”将杀死三个过程。

请注意,killallpkill命令将接受与常规kill命令一样的大多数相同的选项。
例如,使用kill指定的常见选项是-9将sigkill信号发送到一个进程。
语法在其他两个命令上相同。

请参阅下面的示例。

$kill -9 1234
$killall -9 example.sh
$pkill -9 example.sh
日期:2020-07-07 20:57:02 来源:oir作者:oir